簡體   English   中英

Android和onTouch

[英]Android and onTouch

我上課時要畫圖像。 這是代碼:

 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;
      }
    }

當我單擊第一次繪制圖像時。 當我在其他地方單擊時,該怎么辦?舊的圖片消失了,而新的圖片正在繪制?

像這樣在每次觸摸時清除畫布。

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM