1

我在资源文件夹中有 200 张图像,我将它们命名为name_1.png, name_2.png。我有一个数组,其中我有几个数字,例如2, 4 , 6 ,30 , 40 ... and so on.

我想将图像和文本视图加载到 androidlistview并根据资源文件夹中的数字显示图像。

为此,我创建了一个activity classimage adapter classfor 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

取一个Integer arrayR.drawable.imageView1......200传递它的值 Like

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

当您的图像位于 res 文件夹中时,您不能轻易做到这一点,因为每个资源都由一个 int id 访问。

您应该考虑将图像放入您可以像常规文件系统一样访问的资产文件夹中。看看资产管理器。

于 2012-06-02T12:06:15.467 回答
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 回答
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

这很简单,只需在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 回答