Я хочу, чтобы действие выполнялось при касании вида. Однако прикосновения не реагируют. Приложение не разбивается, оно просто игнорирует его.Android: OnTouch не отвечает.
public class CustomDrawableView extends View implements OnTouchListener
{
static final int width = 100;
static final int height = 50;
public CustomDrawableView(Context context)
{
super(context);
setFocusable(true);
setOnTouchListener(mCustomDrawableView);
mDrawable = new ShapeDrawable(new OvalShape());
mDrawable.getPaint().setColor(0xff74AC23);
mDrawable.setBounds(x, y, x + width, y + height);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_DOWN)
{
x = 400;
return true;
}
else {
x = 300;
return false;
}
}
protected void onDraw(Canvas canvas)
{
int mCanvasHeight = canvas.getHeight();
int mCanvasWidth = canvas.getWidth();
canvas.save();
canvas.rotate(R,x,y);
if (y >= mCanvasHeight-100) {
y = 0;
}
RectF oval = new RectF(x, y, x + width, y
+ height); // set bounds of rectangle
Paint p = new Paint(); // set some paint options
p.setColor(Color.BLUE);
canvas.drawOval(oval, p);
canvas.restore();
invalidate();
}
}
Я пробовал кучу разного кода, чтобы исправить это. Ничто из этого не делает ничего, кроме как если я изменю setOnTouchListener (mCustomDrawable) на mCustomDrawableView.setOnTouchListener (это), приложение сработает. В этой деятельности есть еще больше кода, который я не терпел.
Что говорит logcat? – poitroae