如何激活从按钮绘制的方法?

时间:2015-03-13 20:30:41

标签: android onclick draw activation

我对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);
    }

修改:我的应用程序由文本组成。我想让用户为这些文字加下划线,为此,您必须首先启用触摸操作栏按钮。如果您不想强调更多,请再次单击该按钮。

2 个答案:

答案 0 :(得分:1)

您在要重绘的视图上调用invalidate()

答案 1 :(得分:0)

如果我理解你的意思,你需要做一些简单的任务。

首先,OnDraw()方法由它自己调用,因此如果在onDraw()方法中执行此操作,则无法手动执行操作。我建议创建一个处理这些操作的方法。所以尝试删除这两行:

canvas.drawPath(path,paint); canvas.drawCircle(x, y, 25, paint);

其次,您必须添加一个onClickListener附加到您想要对这些操作负责的按钮。如果您不知道该怎么做,请给我发一个问题,我将在这里创建一个教程。 如果这些不起作用,我将非常感谢帮助您解决其他问题。