¿Botón de dibujo de Android a la lona con la opinión de encargo?
¿Cómo puedo dibujar un botón en la parte superior del lienzo en una vista personalizada? (Preferiblemente en el lado medio derecho) ¿Hay algo que tenga que llamar antes de hacer el button.draw (lienzo)?
public class MyClass extends View { public Simulation(Context context) { super(context); pauseButton.setText("TestButton"); pauseButton.setClickable(true); pauseButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { Log.i(TAG, "Button Pressed!"); } }); public onDraw(Canvas canvas) { super.onDraw(canvas); pauseButton.draw(canvas); } }
Gracias por tu tiempo
- Android canvas.drawText () no se muestra
- Dibuje la forma transparente sobre lienzo
- Android: ¿Desplazando eficientemente el contenido de una lona?
- Algunos dispositivos Android extremadamente lentos al representar elementos de lienzo
- Cambiar el color en Paint and Canvas en Android
- DrawLine problema con Paint.StrokeWidth = 1 en Android
- Mala mirada del texto en lona
- Lona de Android, múltiples rutas con diferentes cantidades de zoom
- Soporte de lienzo HTML5 y vista Web de Android
- Double buffering en Java en Android con lienzo y vista de superficie
- Lona de Android - Dibuja un agujero
- ¿Cómo alinear el texto verticalmente?
- No se puede dibujar línea sobre elementos gridview correctamente a través de celdas textview en Android
No puede insertar un botón en el lienzo. Canvas es una interfaz para mapa de bits o un búfer de mapa de bits para una vista. Sólo puede dibujar otro mapa de bits o píxeles en él, no insertar un objeto o un widget.
Hay algunas soluciones:
-
Como Nikolay sugirió, usar un FrameLayout y crear dos capas (vistas), primero su vista personalizada y el segundo LinerView o RelativeView, que vendrá en la parte superior, donde puede tener botones, etc
-
Dibujar una imagen de un buttun en la lona y luego usar onTouchEvent en su vista personalizada y probar las coordenadas del tacto, a continuación, hacer algo … un ejemplo para onTouchEvent aquí: Asegúrese de que el área de mapa de bits transparente en el tacto
¿Por qué necesitas dibujar el botón tú mismo? Utilice un FrameLayout y simplemente tenga el botón superpuesto en su vista personalizada.
Prueba esto
public onDraw(Canvas canvas) { super.onDraw(canvas); canvas.save(); pauseButton.draw(canvas); canvas.restore(); }
- Android: PdfDocument genera pdf vacío
- Android: no se pudo encontrar información sobre el proveedor de com.google.settings en el ejemplo de MapView