Cómo dibujar un rectángulo en los botones usando un lienzo
Frecuentes
Visto 1,090 veces
0
Tengo 3 LinerLayouts dentro de un RelativeLayout, cada LinerLayouts contiene 9 botones. Ahora quiero dibujar un cuadro rectangular en la parte superior de los botones cada vez que toque los botones y ese cuadro rectangular debe deslizarse (mover) a cada botón como se mueve el dedo. Cualquier idea de cómo hacer esto .. gracias de antemano.
1 Respuestas
0
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawRect(mRect, new Paint());
}
private Rect mRect = new Rect();
private static final int WIDTH = 100;
private static final int HEIGHT = 100;
private void setRectPosition(int x, int y) {
mRect.set(x, y, WIDTH, HEIGHT);
invalidate();
}
@Override
public boolean onTouchEvent(MotionEvent event) {
float x = event.getX();
float y = event.getY();
setRectPosition((int)x, (int)y);
return super.onTouchEvent(event);
}
Creo que esto puede funcionar.
contestado el 03 de mayo de 12 a las 10:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas android draw ontouchlistener or haz tu propia pregunta.
gracias por su respuesta Changwei Yao, pero si toco un botón (sin hacer clic) y sigo moviendo el dedo a los siguientes botones, el cuadro también debería moverse en consecuencia, al usar onClicklistener() no puedo hacer esto, quiero algo como onTouchEvent( ). En onTouchEvent podemos obtener x cualquier valor de coordenadas y, al usarlo podemos dibujar. pero aquí ¿cómo podemos? - VKJ
Debe establecer el ancho y la altura usted mismo. Implemente esto en su RelativeLayout o LinearLayout según su escenario: changwei yao
Todos los diseños de botones y revestimientos están en un diseño relativo y ese xml lo estoy inflando, entonces, ¿cómo puedo dibujar rectángulos en este caso? - VKJ