Pregunta

Estoy tratando de dibujar una forma en un lienzo y obtener información sobre los clics que realiza el usuario en ese lienzo.

He creado una clase que extiende la clase Button.

  class CustomDrawableButton extends Button {
    private final ShapeDrawable mDrawable;
    int x = 50;
    int y = 50;
    int width = 30;
    int height = 30;

    public CustomDrawableButton (Context context) {
       super(context);
       mDrawable = new ShapeDrawable (new OvalShape ());
       mDrawable.getPaint().setColor(Color.GREEN);
       mDrawable.setBounds(x, y, x + width, y + height);
    }

    protected void onDraw(Canvas canvas) {
      mDrawable.draw(canvas);
    }
  }

A continuación, en una clase que también se extiende Vista, he añadido la creación de instancias y un oyente:

  CustomDrawableButton mCustomDrawableButton = new CustomDrawableButton(getBaseContext());

  layout.addView(mCustomDrawableButton);

  mCustomDrawableButton.draw(canvas);

  mCustomDrawableButton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
      System.out.println("Yey clicked");
     Toast.makeText(view.getContext(), "Yey", Toast.LENGTH_LONG).show();
    }});

Cuando se ejecuta esto, no es capaz de detectar los clics en el botón de imagen /. He leído que los objetos ShapeDrawable no pueden ser "hacer clic", pero yo estaba esperando que esto funcione, ya que estoy extendiendo el botón (que es una vista y es "hacer clic").

¿Es esto posible? Si no es así, ¿me puede dirigir a alguna forma de obtener información sobre las coordenadas de pantalla que fueron presionados en un lienzo o una Vista?

Gracias de antemano.

¿Fue útil?

Solución

Después de buscar aquí hay un tutorial que muestra cómo se hacen utilizando por conseguir la posición de la pantalla tocado.

http://marakana.com/tutorials/android/2d-graphics -example.html

Todavía no sé cómo hacerlo uniéndose automáticamente el evento tocado un botón. Si alguien sabe cómo hacerlo, por favor decirlo.

Gracias.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top