0
一旦觸摸事件發生,我一直試圖在TouchView的位置繪製一個在ImageView中的圓。我已經制定了一些例子,包括Android - Canvas drawLine inside ImageView。 我的問題是,該圈出現約。比觸摸點低117px。 我的代碼 -Android界面在圖像視圖中出現比預期的要低
public boolean onTouchEvent(MotionEvent event){
Canvas c;
Paint p;
ImageView v;
Bitmap bm;
v = (ImageView)findViewById(R.id.image1);
bm = Bitmap.createBitmap(v.getWidth(),v.getHeight(),Config.ARGB_8888);
c = new Canvas(bm);
p = new Paint();
p.setColor(Color.GREEN);
float x = event.getX(); float y = event.getY();
c.drawCircle(x, y, 20, p);
v.setImageBitmap(bm);
return true;
}
Here是AVD的屏幕截圖(我在真機測試,它也可以)。我不知道發生了什麼問題或缺少什麼基本事實。 請幫助。
是的,我重寫主Activity的onTouchEvent。但我通過傳遞c.drawCircle(0,0,20,p)來檢查。它正確地繪製到左上角。 – Bond 2013-02-27 21:48:47
R.id.image1的頂部/左側是什麼?我的猜測是,頂部是117px。 – 2013-02-27 21:52:43
@Bond - 如果只想在ImageView中單擊時繪製到ImageView,我建議將您的onTouchEvent移動到擴展的ImageView中。否則,您必須將觸摸事件座標轉換爲像Berdon所說的ImageView座標。 – dymmeh 2013-02-27 21:55:07