我有一个位图,我正在尝试使用canvas编写文本。在画布中设置位图并执行必要的操作(在画布上写入文本)后,我在{{上绘制生成的画布1}}。最大的问题是没有显示图像......屏幕变黑。现在,我知道位图返回正常,因为我在进行画布操作之前就显示了。
所以,我就是这样做的:
ImageView
以下是用于在画布上绘制文本的方法:
image= (ImageView) findViewById(R.id.imageview);
bitmap = android.provider.MediaStore.Images.Media
.getBitmap(cr, selectedImage);
int heightOfOld=bitmap.getHeight();
int widthOfOld=bitmap.getWidth();
android.graphics.Bitmap.Config hasAlpha=bitmap.getConfig();
Bitmap bitmapResult=bitmap.createBitmap(widthOfOld, heightOfOld, hasAlpha);
Canvas c=new Canvas(bitmapResult);
Canvas c1=drawTextImage(c);
image.draw(c1);
有人可以告诉我问题出在哪里了吗??
答案 0 :(得分:1)
因为draw(Canvas)的文档说:
“手动将此视图(及其所有子项)渲染到给定的Canvas。”
也许试试:
image.setImageBitmap(bitmapResult);
“将位图设置为此ImageView的内容。”
更新:示例 我认为这应该有效(不能测试它):
image = (ImageView) findViewById(R.id.imageview);
bitmap = android.provider.MediaStore.Images.Media.getBitmap(cr, selectedImage);
Canvas c = new Canvas(bitmap);
drawTextImage(bitmap);
image.setImageBitmap(bitmap);
private Canvas drawTextImage(Bitmap b){
Canvas c = new Canvas(b);
Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setStyle(Paint.Style.FILL);
paint.setAntiAlias(true);
paint.setTextSize(20);
c.drawText("Golden Stag", 30, 200, paint);
}