1

リソースフォルダに200枚の画像があり、名前を付けましname_1.pngname_2.png。そして、私は、のようないくつかの数を持っているという点で配列を持ってい2, 4 , 6 ,30 , 40 ... and so onます。

listview画像とテキストビューをAndroidにロードし、リソースフォルダの番号に従って画像を表示したいと思います。

このために、activity classimage adapter classを作成しましたcustom list view

text view配列データ番号によると、データは表示できますが、画像は表示できません。

誰かが私にこれを行う方法を提案できますか?getview画像を変更するメソッドにコードを書かなければならないと思っています。

これはgetview私が試した方法です

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    convertView = mInflater.inflate(mViewResourceId, null);


    TextView tv1 = (TextView)convertView.findViewById(R.id.tvtype);
    TextView tv2 = (TextView)convertView.findViewById(R.id.tvnumber);
    ImageView i1= (ImageView)convertView.findViewById(R.id.ivlfirst);
    //int i = Integer.parseInt("normal_"+mStrings.get(position)+".png");

i1.setBackgroundResource("normal_"+mStrings.get(position)+".png");
    tv1.setText(mStrings1.get(position));
    tv2.setText(mStrings.get(position));
    return convertView;
}
4

5 に答える 5

0

から画像を取得したい場合は、これを試してくださいassets

InputStream is = ctx.getAssets().open("normal_"+mStrings.get(position)+".png");
Drawable d = Drawable.createFromStream(is, "resourceName");
i1.setBackgroundDrawable(d); //i1 is your imageView

それが役に立てば幸い !!

于 2012-06-02T12:14:16.870 に答える
0

各リソースは int id によってアクセスされるため、画像が res フォルダーにある場合、これを行うのは簡単ではありません。

通常のファイル システムのようにアクセスできる assets フォルダーに画像を配置することを検討する必要があります。AssetManager を参照してください。

于 2012-06-02T12:06:15.467 に答える
0

getView()メソッドで以下のように行うだけで簡単です

 String yourimagename="normal_"+ mStrings.get(position);   // In this no need of image extension like .png,.jpg etc

 int  resImgId= YourActivityName.this.getResources().getIdentifier("Your Package Name:drawable/" +yourimagename, null, null);  

またはこれを試してください

 int  resImgId= YourActivityName.this.getResources().getIdentifier("Your Package Name:drawable/" +yourimagename, null, null); 

またはこれを試してください

 int  resImgId= context.getResources().getIdentifier("Your Package Name:drawable/" +yourimagename, null, null); 
 i1.setImageResource(resImgId);
于 2012-06-02T12:37:26.097 に答える
0

One Integer arrayforR.drawable.imageView1......200を取り、その値を Like に渡します

    private Integer[] Imgid = {R.drawable.imageview1,....,200  };
    i1.setBackgroundResource(Imgid[j]);
于 2012-06-03T13:57:07.747 に答える
0

名前に基づいてドローアブル フォルダーの画像を使用する (リソース名からリソース ID を取得する) 場合は、public int getIdentifier (String name, String defType, String defPackage)を使用します。これは、指定されたリソース名のリソース識別子を次のように返します。

 int image = getResources().getIdentifier(image_name, "drawable",getPackageName());
 ImageView i1= (ImageView)convertView.findViewById(R.id.ivlfirst);
 i1.setBackgroundResource(image);

特定のケースでは、次を使用できます。

i1.setBackgroundResource(getResources().getIdentifier("normal_"+mStrings.get(position), "drawable",getPackageName()));
于 2012-06-02T14:45:24.613 に答える