3

適切に (できれば) 定義されたビュー (XML) で ImageView をアプリに表示しようとしています

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activityShowLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#73C310"
android:orientation="vertical"
tools:context=".ShowActivity" >

<ImageView
    android:id="@+id/mainImage"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/moodButton"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:layout_margin="12dp"
    android:background="#000"
    android:src="@drawable/gs_04_pic" />

<!-- ... -->

その後、アクティビティの onCreate メソッドで

    @Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_show);

    /* ... blabla bla ... */

    ImageView imageView = (ImageView) findViewById(R.id.mainImage);

    Bitmap bitmap = BitmapFactory.decodeByteArray(cream.getMedia(), 0, cream.getMedia().length);
    Drawable draw = new BitmapDrawable(getResources(), bitmap);
    imageView.setImageDrawable(draw);
    imageView.invalidate();
}

cream.getMedia() が (データベースから) 有効な byte[] を返すことで、ログに記録できます。

07-18 17:41:16.812: 私/アプリ (9883): バイト [] は: [B@414af0b0

しかし、最後にimageViewは黒です(画像はありません)onCreateコードを実行しないと、XMLで設定されたリソースが表示されます(XMLで設定された黒い背景にも)

なにが問題ですか?

4

2 に答える 2

3

私はこの問題に遭遇しました。私の場合、問題は次の構成に起因していました。

blueid.gradle

shrinkResources true

リソースへの静的参照がなかったため、ファイルが削除されました。(私の場合の画像)

だから私はこのリンクでこの記事「Keeping Resources」を見つけましたResource Shrinking

履歴書には次のように書かれています:このパス「/res/raw/keep.xml」にファイルを作成する必要があります

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
  tools:keep="@layout/l_used*_c,@layout/l_used_a,@layout/l_used_b*"/>
于 2016-03-04T18:34:01.447 に答える