2012-04-02 26 views
1

Webサービスからベース64でエンコードされた画像を取得し、ImageViewに表示するAndroidアプリを開発しています。画像はエミュレータで表示されますが、Androidタブレットでは表示されません

私の問題は、エミュレータで画像が正しく表示されていることですが、タブレット(Android 4搭載のタブレットASUS Transformer)で動作している場合、ImageViewを画像とともにロードすると消えてしまいます。

これは私がImageViewのをロードするために使用していたコードです:

ImageView imageView = (ImageView) this.findViewById(R.id.floor_map_view); 
Bitmap image = BitmapFactory.decodeByteArray(result, 0, result.length); 
imageView.setImageBitmap(image); 

私はそれがエミュレータ上で正しくロードされ、プラス私が比較しまし言ったように、画像を、Webサービスから正常に取得されます私のWebサービスから送信された64バイトの文字列を受け取って一致させます。

これが私の活動のレイアウトです:何が起こっている可能性があります

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:background="#ffffff"> 


      <ImageView 
       android:contentDescription="floorMapView" 
       android:id="@+id/floor_map_view" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:src="#222222" 
       /> 



</LinearLayout> 

任意のアイデア?

ありがとうございます。

編集:BitmapFactory.OptionsオブジェクトのinSampleSizeを使用し、decodeByteArray呼び出しでこのイメージを使用すると、画像は表示されますが、期待されるよりも小さくなります。

+0

をこの行を追加しますが、文字列または –

+0

バイトのByteArray []、decodeByteArray必要に応じて名前が示すように、それ以外の場合は、コンパイルされないでしょう、バイト配列としてですパラメータ。 –

答えて

0

まず、デバッガを使用してデバッガとエミュレータの両方でランタイム値imageViewimageを検査し、それらが異なるかどうかを確認することです。そうであれば、呼び出しスタックに深く入り込み、なぜそうでないのかを知ることができます。リソースが1つの環境内の同じ場所に存在しないことや、いくつかの原因のいずれかになる可能性があります。

イメージがアクティビティに読み込まれていることが判明した場合は、HierarchyViewerを使用して、アクティビティのレイアウト要素を検査し、欠落しているビューが何か不足しているかどうかを確認します。

+0

実行時に明らかな違いはありません。 HierarchyViewerは実際のデバイスではなく、エミュレータでのみ機能するようです。 –

0

あなたのコードの結果であなたのAndroidManifest.xmlファイルに

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>