Android - 如何下载图像并在运行时使用它?

时间:2011-07-08 06:05:32

标签: android imagedownload

我的应用程序当启动屏幕启动时我只是点击一个URL并获取一个XML文件。从该XML文件我解析出用户名,ID和URL等数据以下载图像。从那个网址我想下载一个图像,我想在我的应用程序本身中以特定的名称存储图像。我想在另一个活动中使用相同的图像作为背景。如何在我的应用程序中下载和存储图像。哪里可以存储在我的应用程序中,无论是在原始文件夹中还是在drawable中。

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

2 个答案:

答案 0 :(得分:4)

这是从网址下载图片的代码:

InputStream in = new URL(image_url).openConnection().getInputStream();
Bitmap bm = BitmapFactory.decodeStream(in);

请注意,它应该异步完成(就像在asynctask中一样)

您可以使用以下方法将Bitmap存储在系统上:

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

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

答案 1 :(得分: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);
}