为什么BitmapFactory.decodeByteArray返回null?

这是简单的代码,我没有得到设置位图的结果,而是得到了null。谁能告诉我我在哪里犯错了?

String test = "test";

byte[] byteA = test.getBytes();

Bitmap bmp = BitmapFactory.decodeByteArray(byteA, 0, byteA.length); //<- I get null here

ImageView image = (ImageView) findViewById(R.id.image);

image.setImageBitmap(bmp);

好的,所以我无法像我想的那样将文本转换为图像。这样呢 这会创建位图吗?

  Paint paint = new Paint();

paint.setStyle(Paint.Style.FILL);

paint.setColor(Color.RED);

paint.setTextSize(16);

paint.setAntiAlias(true);

paint.setTypeface(Typeface.MONOSPACE);

Bitmap bm = Bitmap.createBitmap(16, 16, Bitmap.Config.ALPHA_8);

float x = bm.getWidth();

float y = bm.getHeight();

Canvas c = new Canvas(bm);

c.drawText("Test", x, y, paint);

回答:

从文档中:

解码的位图;如果无法解码图像,则 null。

字符串“ test”中涉及的字节不是有效的位图,对吗?

如果将文本“ test”保存在名为foo.pngor

foo.jpg等的文件中,并试图在Windows中打开它,那么您期望的结果是什么?这将是一个错误:这些字节根本 不是 任何已知格式的有效图像。

编辑:我对Android图形一无所知,但您的更新肯定 看起来 像是一种将文本绘制到位图上的更为合理的方法。

以上是 为什么BitmapFactory.decodeByteArray返回null? 的全部内容, 来源链接: utcz.com/qa/427687.html

回到顶部