2011-05-22 189 views
2

我能够显示位图,但我绘制的圆形不显示。我不确定我错过了什么。无法在位图上绘制圆圈?

private void loadImage() { 
    File f = new File(imagesPath, currImageName); 

    Bitmap bitmap = BitmapFactory.decodeFile(f.getAbsolutePath()); 
    BitmapDrawable bitmapDrawable = new BitmapDrawable(bitmap); 

    Paint paint = new Paint(); 
    paint.setAntiAlias(true); 
    paint.setColor(Color.BLUE); 
    canvas = new Canvas(); 
    canvas.drawCircle(60, 50, 25, paint); 
    bitmapDrawable.draw(canvas); 

    ImageView imageView = (ImageView)findViewById(R.id.imageview); 
    imageView.setAdjustViewBounds(true); 
    imageView.setImageDrawable(bitmapDrawable); 
} 

回答

5

您的代码不是绘制在位图上,而是将您的位图绘制到画布上,然后在该画布的位图上绘制一个圆。结果然后被丢弃。然后,将原始位图(未更改)设置到ImageView中。

您需要使用位图创建画布。然后绘制方法将绘制您的位图。

Bitmap bitmap = BitmapFactory.decodeFile(f.getAbsolutePath()); 

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

     // create canvas to draw on the bitmap 
    Canvas canvas = new Canvas(bitmap); 
    canvas.drawCircle(60, 50, 25, paint); 

    ImageView imageView = (ImageView)findViewById(R.id.imageview); 
    imageView.setAdjustViewBounds(true); 
    imageView.setImageBitmap(bitmap); 
+0

谢谢队友,我很感激。 – Beorn 2011-05-22 15:47:26