5

我是我的应用程序,当启动画面启动时,我只是点击一个 URL 并取回一个 XML 文件。我正在从该 XML 文件中解析出诸如用户名、ID 和 URL 等数据以下载图像。从该网址我想下载一张图片,我想在我的应用程序本身中以特定名称存储图片。我想在另一个活动中使用相同的图片作为背景。我如何下载图像并将其存储在我的应用程序中。它可以存储在我的应用程序中的哪里,在原始文件夹或可绘制文件中。

在存储名称之前如何将图像设置为特定活动中的背景图像,请朋友们帮助我

4

2 回答 2

4

这是从 url 下载图像的代码:

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();

请注意,这只是有关如何存储图像的示例,还有其他方法。无论如何,您应该查看文档。

于 2011-07-08T06:15:02.043 回答
1

如果您想要它用于您的应用程序。更好地下载图像将其保存为 Drawable 实例并在您想要的应用程序中使用它

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);
}
于 2011-07-08T06:55:38.140 回答