ImageView不在真实设备上显示位图

时间:2012-05-03 22:35:30

标签: android

我从内部存储或从互联网获取位图。当我尝试在ImageView中显示它时,它适用于不同的模拟器版本,但不适用于我的Galaxy S I9000。 Bitmap根本没有出现。

protected void onPostExecute (Bitmap bmp) {
    progressBar.setVisibility(View.INVISIBLE);
    if (bmp != null) {
        imageView.setImageBitmap(bmp);
        imageView.setVisibility(View.VISIBLE);
    }
}

2 个答案:

答案 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;

    }