在我的应用程序中,当启动闪屏时,我只是访问一个URL并获取一个XML文件。从该XML文件中,我解析出数据,例如用户名、ID和下载图像的URL。我想要从该URL下载图像,并将其存储在我的应用程序中的特定名称中。我希望在另一个活动中使用相同的图像作为背景。如何下载和存储图像在我的应用程序中?它可以存储在我的应用程序中的哪里,是在raw文件夹还是drawable文件夹中?
在存储名称之前,如何将图像设置为特定活动的背景图像,请帮助我。
在存储名称之前,如何将图像设置为特定活动的背景图像,请帮助我。
InputStream in = new URL(image_url).openConnection().getInputStream();
Bitmap bm = BitmapFactory.decodeStream(in);
请注意,此操作应该异步完成(就像在Asynctask中一样)
然后,您可以使用以下方法将位图存储在系统中:
File fullCacheDir = new File(Environment.getExternalStorageDirectory(),cacheDir);
String fileLocalName = name+".JPEG";
File fileUri = new File(fullCacheDir, fileLocalName);
FileOutputStream outStream = null;
outStream = new FileOutputStream(fileUri);
image.compress(Bitmap.CompressFormat.JPEG, 75, outStream);
outStream.flush();
public static Drawable drawable = null;
//get image from URL and store it in Drawable instance
public void getImageFromURL(final String urlString) {
Thread thread = new Thread() {
@Override
public void run() {
//TODO : set imageView to a "pending" image
InputStream is = null;
try{
URLConnection urlConn = new URL(urlString).openConnection();
is= urlConn.getInputStream();
}catch(Exception ex){}
drawable = Drawable.createFromStream(is, "src");
}
};
thread.start();
}
void setImage(View myView){
myView.setBackgroundDrawable(drawable);
}
File
上真的没有必要调用toString
。File
类有一个构造函数,看起来像File(File parent, String child)
。 - Kaj