0

Ant ビルドを使用した後、問題のある (xml ではなく) 割り当てようとすると、いくつかの描画可能 ID が混同されます。

いくつかの描画可能な ID を保持している配列があります。

int[]ids={R.drawable.pic1,R.drawable.pic2,R.drawable.pic3,R.drawable.pic4};

そして、それらをイメージビューに割り当てようとすると、別のドローアブルが表示されます。

@Override
protected void onCreate(Bundle arg0) {
    super.onCreate(arg0);
    setContentView(R.layout.somelayout);
    iv = (ImageView)findViewById(R.id.image);
    iv.setBackgroundResource(ids[0]);
}

xmlでドローアブルを設定すると発生しません。これは機能します:

<ImageView
    android:id="@+id/image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/pic1" />
4

2 に答える 2

1

Eclipse を閉じて実行し、ant clean続いantてコマンド ラインから実行してみてください。それが機能する場合、最も可能性の高い問題は、ant スクリプトが Eclipse と同じディレクトリにビルドされていることです。また、ant ビルドの実行中に Eclipse が実行されている場合、変更されたファイルを検出し、同時に独自のビルドを実行する可能性があります。これにより、ビルドのタイミングに基づいて、一貫性のない結果が生じる可能性があります。

一般に、ant スクリプトは、Eclipse が使用するディレクトリとは異なるディレクトリにビルドするようにしてください。これには「gen」ディレクトリが含まれます - ant には別のディレクトリを使用してください。

于 2013-01-01T08:06:30.423 に答える
0

リソースを介してドローアブルを取得しようとしています:

 int[]ids={ getResources().getDrawable(R.drawable.pic1), getResources().getDrawable(R.drawable.pic2)};

getResources() でエラーが発生した場合は、使用してみてください

 int[]ids={ YourActivityName.this.getResources().getDrawable(R.drawable.pic1), YourActivityName.this.getResources().getDrawable(R.drawable.pic2)};

これらの方法も試してください::

int [] id を削除して、直接取得してみてください::

  iv = (ImageView)findViewById(R.id.image);
  iv.setImageResource(R.drawable.pic1);
于 2013-01-01T08:06:33.977 に答える