将ImageView src放入HashMap <string,string =“”> </string,>

时间:2011-03-28 07:41:59

标签: android

请先查看我的代码:

private ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();

//... 
ImageView temp = new ImageView(MyApp.this);
temp.setImageResource(R.drawable.icon);
//...
HashMap<String, String> map = list.get(i);
map.put("pic", temp.toString()); //"pic" will map to a ImageView

以下是我的问题:

我知道,

map.put("pic", temp.toString());

错了。

但是正确的方法是什么。

提前致谢。

4 个答案:

答案 0 :(得分:0)

您无法获取ImageView的资源参考。您只能通过调用Drawable上的getDrawable()来获取ImageView

它无法帮助您获取Drawable的字符串表示。

答案 1 :(得分:0)

在哈希映射中包含图像ID的正确方法是使用HashMap,其中object对应于图像ids(int)。试试这个我自己做过的。

答案 2 :(得分:0)

首先使用此功能获取图标或图像的可绘制ID。

 int idImage = getResources().getIdentifier("R.drawable.icon", "drawable", getActivity().getPackageName());
如果您正在使用片段,请在致电getActivity()之前使用getPackageName()

然后将idImage传递给String并将其放入您的HashMap

 String idImageString = String.valueOf(idImage);

 HashMap<String, String> map = new HashMap<String, String>();

 map.put("imageList", idImageString);
 productsList.add(map);

答案 3 :(得分:0)

如果你想将可绘制文件夹中的图像显示到hashmap中,你可以非常轻松地完成...你可以显示它们也将它们显示在图像视图或其他任何内容中。

HashMap<String,Integer> file_maps = new HashMap<String, Integer>();
file_maps.put("Picture1",R.drawable.pic1);
file_maps.put("Picture2",R.drawable.pic2);
for(String name : file_maps.keySet()){
        TextSliderView textSliderView = new TextSliderView(this);
        // initialize a SliderLayout
        textSliderView
                .description(name)
                .image(file_maps.get(name))
                .setScaleType(BaseSliderView.ScaleType.Fit)
                .setOnSliderClickListener(this);

        //add your extra information
        textSliderView.bundle(new Bundle());
        textSliderView.getBundle()
                    .putString("extra",name);

       mDemoSlider.addSlider(textSliderView);
    }

主要的是&lt;字符串,整数&gt;