Android和onTouch

时间:2012-04-02 06:51:59

标签: android ontouchlistener

我上课时画画。这是代码:

 public class CanvasdrawActivity extends Activity implements OnTouchListener {
      ImageView imageView;
      Bitmap bitmap;
      Bitmap bitmap2;
      Canvas canvas;
      Paint paint;
      boolean oneClick=true;
      float downx = 0,downy = 0,upx = 0,upy = 0;

      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        imageView = (ImageView) this.findViewById(R.id.imageView1);
        Display currentDisplay = getWindowManager().getDefaultDisplay();
        float dw = currentDisplay.getWidth();
        float dh = currentDisplay.getHeight();

        bitmap = Bitmap.createBitmap((int) dw, (int) dh,
            Bitmap.Config.ARGB_8888);
        bitmap2=BitmapFactory.decodeResource(getResources(),
                R.drawable.star_bez_nog);

        canvas = new Canvas(bitmap);

        imageView.setImageBitmap(bitmap);
        imageView.setOnTouchListener(this);
      }

      public boolean onTouch(View v, MotionEvent event) {
        int action = event.getAction();
        switch (action) {
        case MotionEvent.ACTION_DOWN:
            if(oneClick){
          downx = event.getX();
          downy = event.getY();
          canvas.drawBitmap(bitmap2, downx, downy, null);
          imageView.invalidate();
          oneClick=false;
            }
          break;

        }
        return true;
      }
    }

当我第一次点击图像时。当我在其他地方点击这张旧照片时,我是如何做到这一点的,并且新画的是什么?

1 个答案:

答案 0 :(得分:0)

在ontouch中每次都像这样清除画布..

Paint paint = new Paint();
paint.setXfermode(new PorterDuffXfermode(Mode.CLEAR));
canvas.drawPaint(paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC));

之后在所需位置绘制位图..

canvas.drawBitmap(bitmap2, downx, downy, null);