3

内部ストレージまたはインターネットからビットマップを取得します。ImageView で表示しようとすると、別のエミュレータ バージョンでは動作しますが、Galaxy S I9000 では動作しません。ビットマップは単に表示されません。

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

2 に答える 2

3

これは、openGL が 2400x2400 を超えるテクスチャを受け入れないという根本的な問題である可能性が非常に高いです。クラッシュは発生しませんが、ImageView にビットマップが表示されないため失敗します。

Bitmap が両方の寸法で 2400 より小さいことを常に確認し、大きい場合はビューに設定する前にサイズを変更する必要があります。

于 2013-01-09T20:45:30.633 に答える
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;

    }
于 2013-02-26T10:45:56.900 に答える