SLaks 2013-06-28 05:45 采纳率: 0%
浏览 2488

下载缩略图然后再显示的问题

我想从 URL 上下载一个图片再放到 SD card 中,再在 imageview 中显示它的缩略图:

try {
Download(URL);  //download picture to SD card/Download
File myfile = new File(Environment.getExternalStorageDirectory() + "/Download/", filename);
Drawable photo = null; 
photo = Drawable.createFromPath(myfile.getPath());
imageview.setBackgroundDrawable(photo);
}

它显示初始化照片,但是当图像放大就会发生内存错误。所以我想显示小点的图像。那么我该如何做能生成缩略图再显示呢?或者如何让 android 系统生成缩略图?

  • 写回答

1条回答

  • 码密码密哄 2013-06-28 06:02
    关注

    网上很多,随便找个地方copy了个给你

     private Bitmap getImageThumbnail(String imagePath, int width, int height) {  
            Bitmap bitmap = null;  
            BitmapFactory.Options options = new BitmapFactory.Options();  
            options.inJustDecodeBounds = true;  
            // 获取这个图片的宽和高,注意此处的bitmap为null  
            bitmap = BitmapFactory.decodeFile(imagePath, options);  
            options.inJustDecodeBounds = false; // 设为 false  
            // 计算缩放比  
            int h = options.outHeight;  
            int w = options.outWidth;  
            int beWidth = w / width;  
            int beHeight = h / height;  
            int be = 1;  
            if (beWidth < beHeight) {  
                be = beWidth;  
            } else {  
                be = beHeight;  
            }  
            if (be <= 0) {  
                be = 1;  
            }  
            options.inSampleSize = be;  
            // 重新读入图片,读取缩放后的bitmap,注意这次要把options.inJustDecodeBounds 设为 false  
            bitmap = BitmapFactory.decodeFile(imagePath, options);  
            // 利用ThumbnailUtils来创建缩略图,这里要指定要缩放哪个Bitmap对象  
            bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,  
                    ThumbnailUtils.OPTIONS_RECYCLE_INPUT);  
            return bitmap;  
        }  
    
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器