使用毕加索从网址获取图像

时间:2016-09-24 10:04:56

标签: android image url picasso

我想从url加载图像并将其保存在SD卡中的文件中,然后从文件加载并在图像视图中显示。

所以我试图用毕加索加载图像。但它没有显示在图像视图上。

这是网址:

http://xesoftwares.co.in/contactsapi/profile_images/d34b638b93773140eb94d5f03c20237c.jpg

使用毕加索加载图片。

Picasso.with(MainActivity.this).load(url).into(profileImage);

如何从网址下载图片。将其保存在SD卡中的文件中,然后从文件中加载图像以显示在图像视图上?

请帮忙。谢谢..

4 个答案:

答案 0 :(得分:4)

使用GLIDE库自动将图像存储到缓存中.....

   Glide.with(context).load(url).into(profileImage);

注意: - 只有您第一次需要互联网才能加载图片。当Image在没有互联网的情况下加载它时。

编辑: - 使用此gradle

compile 'com.github.bumptech.glide:glide:3.7.0'

输出: -

o

答案 1 :(得分:0)

要将其保存到SD卡中,您必须声明使用权限写入清单中的sd卡读取,还要求用户获取android 5.0+的这些权限。所有这些都在android开发者官方网站上有明确记载。  将MainActivity.class更改为getApplicationContext()

答案 2 :(得分:0)

添加:

<manifest ...>
    <uses-permission android:name="android.permission.INTERNET" /> 

在您的清单文件中,否则无法下载源。

如果您想将其保存在SD卡中,则需要另外许可:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

为了保存它。

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

如果您希望将来获得该文件。

接下来,如果要将其保存到外部目录,可以尝试:

    public void setUpDirectory(String folderName,String source){

        File directory = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+File.separator+folderName);

        if(!directory.exists() && !directory.isDirectory()) {
            directory.mkdirs();
        }

        URL imageurl = new URL(source); 
        Bitmap bitmap = BitmapFactory.decodeStream(imageurl.openConnection().getInputStream());
        saveFile(directory,bitmap);
    }


private void saveFile(File fileName,Bitmap bmp){


FileOutputStream outputStream = null;
try {
    outputStream = new FileOutputStream(fileName);
    bmp.compress(Bitmap.CompressFormat.PNG, 100, outputStream ); // 100 will be  ignored
} catch (Exception e) {
    e.printStackTrace();
} 
finally {
    try {
        if outputStream != null) {
            outputStream .close();
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}


}

答案 3 :(得分:0)

如果您已将图像作为ImageView的背景放入xml中,请将其删除。