Android 将ImageView src放入HashMap<;字符串,字符串>;

Android 将ImageView src放入HashMap<;字符串,字符串>;,android,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

请先看一下我的代码:

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
这是错误的

但正确的方法是什么呢


提前感谢。

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


获取该
可绘制的

的字符串表示将不会有帮助。在哈希映射中包含图像ID的正确方法是使用HashMap,其中对象对应于图像ID(int)。一定要试试这个,我自己也做过。

首先用这个来获取图标或图像的可绘制id

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

然后将
idImage
传递到
字符串
,并将其放入HashMap中

 String idImageString = String.valueOf(idImage);

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

 map.put("imageList", idImageString);
 productsList.add(map);
String idImageString=String.valueOf(idImage);
HashMap=newHashMap();
map.put(“imageList”,idImageString);
productsList.add(地图);

如果您想将drawable文件夹中的图像显示到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);
    }
HashMap文件_maps=newhashmap();
文件_maps.put(“Picture1”,R.drawable.pic1);
文件_maps.put(“Picture2”,R.drawable.pic2);
for(字符串名称:file_maps.keySet()){
TextSliderView TextSliderView=新的TextSliderView(此);
//初始化幻灯片布局
文本幻灯片视图
.说明(姓名)
.image(文件_maps.get(名称))
.setScaleType(BaseSliderView.ScaleType.Fit)
.setOnSliderClickListener(本);
//添加您的额外信息
text sliderView.bundle(新bundle());
textSliderView.getBundle()
.putString(“额外”,名称);
mDemoSlider.addSlider(textSliderView);
}

主要问题是

您到底想在那里提取什么?您将无法仅提取资源引用的
Drawable
。因此,我无法用这种方式设置ImageView?我想从服务器设置ImageView,并希望它在任务中执行。因此,我需要知道如何更改ImageView。有什么方法可以更改ImageView?如果我想使用url图像显示我与毕加索一起下载的图像的id,该怎么办?如何将其添加到hashmap?如果我想使用url图像显示我与毕加索一起下载的图像的id,该怎么办?如何将其添加到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);
    }