Android и onTouch - PullRequest
       4

Android и onTouch

0 голосов
/ 02 апреля 2012

У меня есть класс, где я рисую изображение. Это код:

 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 голосов
/ 02 апреля 2012

В режиме касания очищайте холст каждый раз, как это ..

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...