¿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

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:

  1. 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

  2. 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(); } 
  • Cómo dibujar AdMob en un lienzo?
  • ¿Puedo ejecutar mis efectos de lienzo HTML5 en iPhone o Android?
  • Dibujar la línea de trazo en una lona
  • Cómo dibujar círculo con particionado en android?
  • Dibuja animaciones de alta resolución con alta velocidad de fotogramas en Android
  • Android dibuja una línea animada
  • Android: colorea debajo del gráfico de líneas
  • Cómo hacer lienzo área de dibujo transparente en android?
  • Seleccionar cámara trasera en el dispositivo Android - jsartoolkit5
  • Dibujar cuadrado con esquinas redondeadas
  • Cómo dibujar el juego en Android Canvas con un montón de primitivos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.