我试图从服务器下载图像并将其保存在android的内部存储中。如果我下载的图像小于2 MB,它在任何情况下都能正常运行。但是当我下载大小超过2MB的JPEG图像时,我面临两个问题。与Android下载图像相关的问题
第一个问题是,当我试图使用模拟器从服务器下载并保存映像时,出现“位图大小超出虚拟机预算”和活动崩溃等错误。
第二个问题是,当我在手机上运行应用程序时,这个问题不是他们的问题,而是另一个问题正在发生。当我显示下载的图像时,图像还包含一些其他颜色(彩虹种类)。
这里是我使用它来下载并保存图像的代码:
//For downloading the image file
void downloadFile(String fileUrl)
{
URL myFileUrl = null;
try {
myFileUrl = new URL(fileUrl);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try
{
HttpURLConnection conn = (HttpURLConnection) myFileUrl .openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bmImg = BitmapFactory.decodeStream(is);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//For saving the downloaded image
void saveImage() {
try
{
String fileName ="displayimg.png";
final FileOutputStream fos = openFileOutput(fileName, Activation.MODE_PRIVATE);
bmImg.compress(CompressFormat.PNG, 90, fos);
} catch (Exception e)
{
e.printStackTrace();
}
}
这里是显示图像的代码:
private Bitmap myBitmap;
myBitmap= BitmapFactory.decodeFile(imgFile.getAbsolutePath());
ivDisplayImage.setImageBitmap(myBitmap);
为什么你不保存你下载的内容,而不是解压缩图像并以另一种格式再次压缩它? – njzk2 2013-03-19 08:37:11
@ njzk2他会在ImageView中显示它,所以它不会帮助解决原始问题。 – vorrtex 2013-03-19 08:44:27
对于第一个问题,我会建议你回收你的位图images.as立即离开包含图库图像的课程 – Aamirkhan 2013-03-19 08:50:22