【发布时间】:2016-03-22 05:44:12
【问题描述】:
在这里,我想从字符串 URL 转换图像。虽然有一个包含图像的 URL,但它返回 null。我在下面分享了代码。
private byte[] convertImageToByteArray(String imgPath)
{
byte[] byteArray = null;
Bitmap bmp = BitmapFactory.decodeFile(imgPath);
if(bmp != null)
{
try {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
//bmp.compress(Bitmap.CompressFormat.JPEG, 100, stream);
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byteArray = stream.toByteArray();
try
{
stream.close();
}
catch (IOException e)
{
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
}
else
{
try {
Bitmap bmpDefault = BitmapFactory.decodeResource(getResources(), R.drawable.na);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
//bmpDefault.compress(Bitmap.CompressFormat.JPEG, 100, stream);
bmpDefault.compress(Bitmap.CompressFormat.PNG, 100, stream);
byteArray = stream.toByteArray();
}
catch (Exception e)
{
e.printStackTrace();
}
}
return byteArray;
}
控制流不执行 if 块,而是进入 else 块,BitmapFactory.decodeFile() 总是返回 null。我哪里出错了?
【问题讨论】:
-
imgPath指的是什么?它是有效的图像文件吗?您是否尝试查看其二进制内容? -
imgPath 是一个有效的 URL
-
我的网址就像 www.facebook.com/abc/sampleImage.png
-
decodeFile(String pathName)API 级别 1 中添加 将文件路径解码为位图。如果指定的文件名为空,或者不能解码成位图,函数返回空。 -
我已经交叉检查过了。 URL 包含值。它不为空。
标签: android bitmapfactory