Rectángulo de dibujo de lienzo de Android
Cómo dibujar rectángulo vacío con etc. borderWidth = 3 y borderColor = negro y parte dentro del rectángulo no tienen contenido ni color. Qué función utilizar en Lienzo
void drawRect(float left, float top, float right, float bottom, Paint paint) void drawRect(RectF rect, Paint paint) void drawRect(Rect r, Paint paint)
Gracias.
- Línea de dibujo de lienzo de Android - hacer la línea más gruesa
- ¿Canvas.getClipBounds asigna un objeto Rect?
- Extraño dibujo de choque en lienzo en Android 4.0.3. A / libc: Señal fatal 11 (SIGSEGV)
- SurfaceHolder.lockCanvas () Devuelve null Aunque estaba disponible
- Tamaño de pantalla de Android Scaling Canvas
Intento este ejemplo
Paint myPaint = new Paint(); myPaint.setColor(Color.rgb(0, 0, 0)); myPaint.setStrokeWidth(10); c.drawRect(100, 100, 200, 200, myPaint);
Dibuja el rectángulo y lo llena con el color negro pero quiero apenas el "marco" alrededor como esta imagen:
- Cómo dibujar un camino en un lienzo de Android con la animación?
- Usar el indicador de hardwareAcceleration con Canvas.clipPath
- Uso de clipRect - explicación
- Android - ¿Cómo rotar Rect Object?
- Android - Dibujo de un laberinto de lienzo con el movimiento de caracteres suave
- Dibujo de lienzo que no se dibuja correctamente a pesar de las propiedades de configuración
- En Android, ¿cómo hago extrañas áreas de recorte?
- El lienzo no dibuja en Vista personalizada
Pruebe paint.setStyle(Paint.Style.STROKE)
?
Suponiendo que " parte dentro del rectángulo no tiene color de contenido " significa que desea rellenos diferentes dentro del rectángulo; Usted necesita dibujar un rectángulo dentro de su rectángulo entonces con el ancho de golpe 0 y el color de relleno deseado (s).
Por ejemplo:
DrawView.java
import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.View; public class DrawView extends View { Paint paint = new Paint(); public DrawView(Context context) { super(context); } @Override public void onDraw(Canvas canvas) { paint.setColor(Color.BLACK); paint.setStrokeWidth(3); canvas.drawRect(30, 30, 80, 80, paint); paint.setStrokeWidth(0); paint.setColor(Color.CYAN); canvas.drawRect(33, 60, 77, 77, paint ); paint.setColor(Color.YELLOW); canvas.drawRect(33, 33, 77, 60, paint ); } }
La actividad para iniciarlo:
StartDraw.java
import android.app.Activity; import android.graphics.Color; import android.os.Bundle; public class StartDraw extends Activity { DrawView drawView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); drawView = new DrawView(this); drawView.setBackgroundColor(Color.WHITE); setContentView(drawView); } }
… resultará de esta manera:
//white background canvas.drawRGB(255, 255, 255); //border's properties paint.setColor(Color.BLACK); paint.setStrokeWidth(0); paint.setStyle(Paint.Style.STROKE); canvas.drawRect(100, 100, 200, 200, paint);
paint.setStrokeWidth(3); paint.setColor(BLACK);
Y cualquiera de sus drawRect
debería funcionar.
Crear una nueva clase MyView, Which extends View
. onDraw(Canvas canvas)
el onDraw(Canvas canvas)
para dibujar el rectángulo en Canvas
.
import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.util.AttributeSet; import android.view.View; public class MyView extends View { Paint paint; Path path; public MyView(Context context) { super(context); init(); } public MyView(Context context, AttributeSet attrs) { super(context, attrs); init(); } public MyView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(); } private void init(){ paint = new Paint(); paint.setColor(Color.BLUE); paint.setStrokeWidth(10); paint.setStyle(Paint.Style.STROKE); } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); canvas.drawRect(30, 50, 200, 350, paint); canvas.drawRect(100, 100, 300, 400, paint); //drawRect(left, top, right, bottom, paint) } }
Luego Mueva su actividad de Java a setContentView()
usando nuestra vista personalizada, MyView.Call de esta manera.
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new MyView(this)); }
Para más detalles, puede visitar aquí
http://developer.android.com/reference/android/graphics/Canvas.html
No sé si esto es demasiado tarde, pero la forma en que resolví esto era dibujar cuatro rectángulos delgados que juntos formaban un gran borde. Dibujar el borde con un rectángulo parece que se puede deshacer ya que son opacos, por lo que debe dibujar cada borde del borde por separado.
- El archivo APK no existe en el disco
- Guardar y leer mapas de bits / imágenes de la memoria interna en Android