2011-12-05 8 views
0

imageviewsの配列が必要ですが、imageview型のオブジェクトで塗りつぶす方法がわかりません。ImageViewsを使用したAndroidの塗りつぶしの配列

ImageView[] forAdapter = new ImageView[imageIds.size()]; 
for(int i = 0; i < imageIds.size(); i++) 
{ 
        ImageView mImageView = new ImageView(context); 
        forAdapter[i] = mImageView.setImageDrawable(((imagesPulled.get(imageIds.get(i))))); 
} 

.setImageDrawableはImageViewのを返さないので、これは動作しません、と私は実際にはありません任意のオブジェクトを知りません!

私は配列でdrawableを使うことを考えましたが、最終的にはリストビュー用の配列アダプターを設定しています。drawableでR.layoutを作ることはできません(クラスキャスト例外が発生します。 ImageViewではdrawable型ではないので)、ImageViewsを配列に配置するだけです。問題が間違っていない限り

答えて

2

mImageViewはImageView自体です。

したがって、forAdapter [i] = mImageViewは正常に動作するはずです。追加のアクションを使用する場合は、割り当ての前に実行できます。

6

あなたのコードはほぼそこにあります!私はちょうどつもり小さな変更を行うと、以下のことにコメントしています:

ImageView[] forAdapter = new ImageView[imageIds.size()]; 
for(int i = 0; i < imageIds.size(); i++) 
{ 
        forAdapter[i] = new ImageView(context); 
        forAdapter[i].setImageDrawable(imagesPulled.get(imageIds.get(i))); 
} 

まず:あなたはforAdapterを初期化したい場合は、[i]は、新しい変数を作成して、それを割り当てる必要はありません。ただ、そこにそれを行う:

forAdapter[i] = new ImageView(context); 

は何も返しません(setImageDrawable、setImageResource、などを使用して)画像を設定します。

forAdapter[i].setImageDrawable(imagesPulled.get(imageIds.get(i))); 

あなたはあなたが疑問を持っている場合は、単にコメントで尋ねる:) 行われている:それはそうあなたが得たすべては、変更したい変数からメソッドを呼び出すことであるあなたは、画像そのもので行う操作です。

希望します。

+0

ありがとう、はい私はそれを働かせました。カスタマイズされたアレイアダプターのためにちょっとしたことを変えてしまった。私は柔軟性にもかかわらず、カスタムアレイアダプターをスキップしようとしていた – CQM