Я довольно новичок в android. У меня есть этот код для рисования в моем приложении, но я хочу активировать его с помощью кнопки. Если я нажму на кнопку панели действий, я буду рисовать, иначе я не буду этого делать. Как мне это сделать?Как активировать метод рисования с помощью кнопки?
//DRAW
public class CustomView extends View {
Bitmap mBitmap;
Paint paint;
Path path;
public CustomView(Context context) {
super(context);
mBitmap = Bitmap.createBitmap(640, 1024, Bitmap.Config.ARGB_8888);
paint = new Paint();
path= new Path();
paint.setColor(Color.YELLOW);
//paint.setStyle(Style.FILL); //if I want to fill but I don't
paint.setStyle(Style.STROKE);
paint.setStrokeWidth(3);
}
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawPath(path,paint);
canvas.drawCircle(x, y, 25, paint);
}
public boolean onTouchEvent(MotionEvent event) {
int action = event.getAction();
switch (action){
case MotionEvent.ACTION_DOWN:
path.moveTo(event.getX(), event.getY());
path.lineTo(event.getX(), event.getY());
break;
case MotionEvent.ACTION_MOVE:
x = event.getX();
y = event.getY();
path.lineTo(x, y);
invalidate();
break;
case MotionEvent.ACTION_UP:
path.lineTo(event.getX(), event.getY());
break;
case MotionEvent.ACTION_CANCEL:
break;
default:
break;}
return true;
}}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_edit:
Log.i("ActionBar", "Edit");
// FROM HERE I WANT TO ACTIVATE
return true;
case R.id.menu_save:
Log.i("ActionBar", "Guardar!");;
return true;
default:
return super.onOptionsItemSelected(item);
}
Edit: мое приложение состоит из текста. И я хочу, чтобы пользователь подчеркивал этот текст, и для этого вы должны сначала включить касание кнопки панели действий. И если вы не хотите подчеркивать больше, вы снова нажимаете кнопку.
Я использовал этот код в swich для активации: layout = (FrameLayout) findViewById (R.id.layout); \t layout.addView (новый CustomView (Objeto.this)); \t layout.invalidate() ;. Теперь я должен посмотреть, как отключить его. Спасибо, Гейб. –
Знаете ли вы, как деактивировать или остановить onDraw, когда я снова нажимаю кнопку? Я не знаю, как это сделать. –
Если вы хотите, чтобы он возвращался в предыдущее состояние, вам нужно заставить его взглянуть на некоторый логический флаг, чтобы определить, рисовать эти вещи или нет, и заставить вашу кнопку переключать этот флаг, а затем вызвать недействительным. –