gpt4 book ai didi

android - 尝试使用 Canvas 在其上绘制文本时图像显示为黑色

转载 作者:行者123 更新时间:2023-11-30 04:36:08 25 4
gpt4 key购买 nike

我有一个位图,我正在尝试使用 Canvas 在其上写文本。在 Canvas 中设置位图并执行必要的操作(在 Canvas 上写文本)后,我在 ImageView。最大的问题是没有图像显示...屏幕变黑。现在,我知道位图返回正常,因为我在执行 Canvas 操作之前就显示了。

所以,我是这样做的:

                     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);

下面是在 Canvas 上绘制文本的方法:

                  private Canvas drawTextImage(Canvas c){
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);
return c;
}

有人能告诉我问题出在哪里吗?

最佳答案

因为 draw(Canvas) 的文档说:

"Manually render this view (and all of its children) to the given Canvas."

也许试试:

image.setImageBitmap(bitmapResult);

"Sets a Bitmap as the content of this 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);
}

关于android - 尝试使用 Canvas 在其上绘制文本时图像显示为黑色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6816182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com