我从内部存储或从互联网获取位图。当我尝试在ImageView中显示它时,它适用于不同的模拟器版本,但不适用于我的Galaxy S I9000。 Bitmap根本没有出现。
protected void onPostExecute (Bitmap bmp) {
progressBar.setVisibility(View.INVISIBLE);
if (bmp != null) {
imageView.setImageBitmap(bmp);
imageView.setVisibility(View.VISIBLE);
}
}
答案 0 :(得分:3)
这很可能是openGL不接受大于2400x2400的纹理的潜在问题。它不会导致崩溃,但是因为没有在ImageView中显示Bitmap而失败。
在两个维度中,您应始终确保位图小于2400,并在视图中将其设置为大尺寸之前调整其大小。
答案 1 :(得分:0)
我用这种方法来帮助我显示图像
public static Drawable ToDrawable(Resources r, byte[] encodedString)
{
if (encodedString == null)
return null;
Bitmap bmp = BitmapFactory.decodeByteArray(encodedString, 0, encodedString.length);
Drawable drawable = new BitmapDrawable(r, bmp);
// bmp.recycle();
return drawable;
}