android 图片 缩略图,加载许多大型位图图像作为缩略图 – Android

我正在开发一个媒体播放器应用程序,并希望加载专辑封面艺术图像以在ListView中显示.现在,它可以正常使用我从last.fm自动下载的图像,这些图像低于500×500 png.但是,我最近添加了另一个面板到我的应用程序,允许查看全屏艺术作品,所以我用大(1024×1024)png替换了我的一些艺术作品.

现在当我用高分辨率艺术品滚动几张专辑时,我的BitmapFactory上出现了一个java.lang.OutOfMemoryError.

static public Bitmap getAlbumArtFromCache(String artist, String album, Context c)

{

Bitmap artwork = null;

File dirfile = new File(SourceListOperations.getAlbumArtPath(c));

dirfile.mkdirs();

String artfilepath = SourceListOperations.getAlbumArtPath(c) + File.separator + SourceListOperations.makeFilename(artist) + "_" + SourceListOperations.makeFilename(album) + ".png";

File infile = new File(artfilepath);

try

{

artwork = BitmapFactory.decodeFile(infile.getAbsolutePath());

}catch(Exception e){}

if(artwork == null)

{

try

{

artwork = BitmapFactory.decodeResource(c.getResources(), R.drawable.icon);

}catch(Exception ex){}

}

return artwork;

}

有什么我可以添加来限制生成的Bitmap对象的大小,如256×256?这就是缩略图所需要的更大,我可以创建一个重复的函数或参数来获取完整大小的艺术作品以显示全屏.

此外,我在ImageViews上显示这些位图,这些位图很小,大约在150×150到200×200之间.较小的图像缩小比大图像缩小.有没有办法应用缩小滤波器来平滑图像(可能是抗锯齿)?如果我不需要,我不想缓存一堆额外的缩略图文件,因为它会使管理图片图像变得更加困难(目前你可以在目录中转储新的缩略图文件,它们将在下次自动使用他们得到了装载).

完整的代码是在http://github.org/CalcProgrammer1/CalcTunes,在src / com / calcprogrammer1 / calctunes / AlbumArtManager.java中,尽管在另一个函数中没有太大的不同(如果图像丢失,则返回到检查last.fm).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值