2013-03-07 54 views
2

我已經在這裏搜索了很多答案,用畫布在位圖上繪製一個圓。但是,我在代碼中遇到了一些錯誤,並且應用程序沒有任何異常就停止了。在位圖上畫一個圓

任何人都可以給我一些幫助嗎?它工作正常,我創建一個空白的位圖並在其上畫一個圓圈。 任何幫助將不勝感激!

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.main); 

Paint paint = new Paint(); 
//paint.setAntiAlias(true); 
paint.setColor(Color.BLUE); 

Canvas canvas = new Canvas(bmp); 
canvas.drawCircle(50, 50, 10, paint); 

ImageView imageView = (ImageView)findViewById(R.id.imageView1); 
//imageView.setAdjustViewBounds(true); 
imageView.setImageBitmap(bmp); 
+0

我們可以有logcat請致電 – 2013-03-07 14:18:43

+0

logcat有這麼多的信息.​​.你可以告訴什麼是相關的信息? – 2013-03-07 14:30:56

回答

4

讀的地方,資源位圖是不可改變的。嘗試...

bmp = bmp.copy(bmp.getConfig(), true); 
+0

它的作品!你能告訴我什麼是問題嗎? – 2013-03-07 14:33:23

+0

很高興能工作:) 那麼如果變量是不可變的,那麼在施工後就不能改變它。所以當你製作一個副本(並使用它)時,你可以。 – PhilTheThrill 2013-03-07 14:36:27

0

這將吸引你的圓圈爲給定的高度

private RectF outerCircle; 
    diameter =400; 

    int left = (width - diameter)/2; 
    int top = (height - diameter)/2; 
    int bottom = top + diameter; 
    int right = left + diameter; 
    outerCircle = new RectF(left, top, right, bottom);