2011-06-20 60 views
2

我試圖在ImageView上畫一個圓。圓圈正在畫,但有錯誤的座標。ImageView上的drawCircle錯誤座標

protected void onImageClicked(float x, float y, ImageView image) { 
     if (diff.isDifferenceClicked((int)x, (int) y)){ 

     BitmapDrawable bmd = (BitmapDrawable) image.getDrawable(); 
     Bitmap bm= bmd.getBitmap(); 

     Paint paint = new Paint(); 
     paint.setAntiAlias(true); 
     paint.setColor(Color.RED); 
     paint.setStyle(Paint.Style.STROKE); 

     Canvas canvas = new Canvas(bm); 
     canvas.drawCircle(x, y, 25, paint); 

     image.setImageBitmap(bm);} 

    } 

x和y是event.getX()event.getY() 和圓繪製更高,更爲位圖的左側。

+0

你能不能做的System.out.println(X + 「」 + Y); drawCircle之前,讓我知道你有什麼? –

+0

我得到了我點擊的地方的座標。如果我點擊左上角我有0 0.座標是正確的,但地方是錯誤的。 – n1n3b1t

回答

1

問題在於位圖大小。 文件的原始大小是正確的。但是,這

BitmapDrawable bmd = (BitmapDrawable) image.getDrawable(); 
    Bitmap bm= bmd.getBitmap(); 

大小延長了15-20%後