Cлушатель для графики OnDraw

260
08 марта 2017, 17:52

Как сделать слушатель для графики OnDraw в MainActivity на нажатие?

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;
public class RectButton extends View {
public RectButton(Context context) {
    super(context);
}
public RectButton(Context context, AttributeSet attrs) {
    super(context, attrs);
}
public RectButton(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
}
@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    Paint paint = new Paint();
    paint.setColor(Color.RED);
    canvas.drawRect(100, 100, 600, 600, paint);
  }
}
Answer 1
public class RectButton extends View {
boolean isClicked = false;
Rect rect = new Rect(100, 200, 150, 250);
public RectButton(Context context) {
   super(context);
}

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    Paint paint = new Paint();
    if (isClicked)
    {
        paint.setColor(Color.RED);
    } else
    {
        paint.setColor(Color.BLACK);
    }
    canvas.drawRect(rect , paint);
}
@Override
    public boolean onTouchEvent(MotionEvent event)
    {
        int action = event.getActionMasked();

    if (action == MotionEvent.ACTION_UP)
        {
            int x = (int) event.getX();
            int y = (int) event.getY();
            if ((x > rect.left & x < rectf.right) &&
                (y > rect.top & x < rectf.bottom))
                {
                    isClicked = (isClicked)? false:true;  //нажата кнопка
                    invalidate(); //перерисуем view
                }
        }

    return true;
}
}
READ ALSO
Как использовать hibernate grails 3,mysql?

Как использовать hibernate grails 3,mysql?

У меня есть mysql сервер и 2 приложения: web (сайт, grails 3) и android приложениеБаза данных содержит расписание матчей

337
Отображение клавиатуры в фрагменте

Отображение клавиатуры в фрагменте

Как в одном из нескольких фрагментов добавить постоянно отображающийся клавиатуру

247
Не работают кнопки в Mozilla Firefox

Не работают кнопки в Mozilla Firefox

Здравствуйте! У меня почему то не работает кнопки в Mozilla Firefox, если внутри них расположить иконку или картинкуС чем это связано, и как эту проблему...

452
Bootstrap Collapse не работает совместно с setTimeout

Bootstrap Collapse не работает совместно с setTimeout

Наверняка многие пользовались функциональностью для отображения и скрытия определенного контента посредством Bootstrap CollapseВот и я пользуюсь,...

316