Android Listview 获取图片的四种方法

本文介绍了在Android开发中,如何通过ListView显示图片的四种方法:从res目录、assets目录、SD卡以及网络加载图片。详细阐述了每种方式的实现代码,并提供了在SimpleAdapter中使用ViewBinder进行绑定的示例。
部署运行你感兴趣的模型镜像

最近在开发一个导购项目,需要用到ANDROID系统来进行开发。

第一次ANDROID开发这么大项目,即兴奋又激动。

在开发过程中,调用图片遇到了一些问题,经过几个小时的挖掘与测试总算解决。

以下四种方法的情景,假设有个 product111.jpg 我要通过 listview 方式展示出来。


一、调用res下drawable目录的图片

drawable 为res的drawable目录

product111 为图片名

getPackageName() 获取当前包名

int resID = getResources().getIdentifier("product111", "drawable", getPackageName());   // 得到图片的资源ID,res下的所有资源都以ID形式存在于R.java 中。


二、调用assets目录的图片

big 为assets目录下的目录

product111.jpg 为图片名

getImageFromAssetsFile("big/product111.jpg");


//用于将获取assets下的图片

private Bitmap getImageFromAssetsFile(String fileName)
        {
            Bitmap image = null;
            AssetManager am = getResources().getAssets();
            try
            {
                InputStream is = am.open(fileName);
                image = BitmapFactory.decodeStream(is);
                is.close();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }

            return image;

        }


在SimpleAdapter 中新增一个setViewBinder接口,代码如下

simpler.setViewBinder(new ViewBinder() {
            @Override
            public boolean setViewValue(View view, Object datas,
                    String textRepresentation) {
                
                if(view instanceof ImageView && datas instanceof Bitmap){
                ImageView iv = (ImageView) view;
                iv.setImageBitmap((Bitmap) datas);
                return true;
                }else
                return false;
            }
        });


三、调用SD下任何目录的图片

big 为sd卡下的目录

product111.jpg 为图片文件名

BitmapFactory.decodeFile(Environment.getExternalStorageDirectory() + "big/product111.jpg")


在SimpleAdapter 中新增一个setViewBinder接口,代码如下

simpler.setViewBinder(new ViewBinder() {
            @Override
            public boolean setViewValue(View view, Object datas,
                    String textRepresentation) {
                
                if(view instanceof ImageView && datas instanceof Bitmap){
                ImageView iv = (ImageView) view;
                iv.setImageBitmap((Bitmap) datas);
                return true;
                }else
                return false;
            }
        });



四、调用WEB图片

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值