Android 下载并显示缩略图
我尝试从URL下载图片到SD卡/下载。 我尝试在imageview中显示它的缩略图。 现在我有以下代码:Android 下载并显示缩略图,android,Android,我尝试从URL下载图片到SD卡/下载。 我尝试在imageview中显示它的缩略图。 现在我有以下代码: try { Download(URL); //download picture to SD card/Download File myfile = new File(Environment.getExternalStorageDirectory() + "/Download/", filename); Drawable photo = null; photo = Drawable.cre
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系统生成的缩略图?使用位图,例如
try
{
Download(URL); //download picture to SD card/Download
final int THUMBNAIL_SIZE = 64;
FileInputStream fis = new FileInputStream(Environment.getExternalStorageDirectory() + "/Download/", filename);
Bitmap imageBitmap = BitmapFactory.decodeStream(fis);
imageBitmap = Bitmap.createScaledBitmap(imageBitmap, THUMBNAIL_SIZE, THUMBNAIL_SIZE, false);
imageview.setImageBitmap(imageBitmap);
}
catch(Exception ex) {
}
从显示的代码
试着用这个代替你的最后两行
Bitmap photo = Bitmap.createScaledBitmap(BitmapFactory.decodeFile(myfile.getPath()),60,60,true);
imageview.setImageBitmap(photo);
如果您在Download()
函数中为位图/String/Stream创建了任何对象,请调用System.gc()释放它们代码>
我希望这能奏效。您是否尝试过调整ImageView的大小和ScaleType?System.gc()应该在哪里;放置?在下载代码中..以及您在何处创建和使用保存图像数据的对象..并使用内存..在使用这些对象之后..调用gc()让我告诉您..调用System.gc())这并不意味着您的内存会立即被释放…它只会向操作系统发出一个标志,表明这里有未使用的内存…并且在垃圾收集器运行时内存会被释放..这是自动完成的,因此您无法控制它..但您可以直接标记它。