Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用毕加索从url获取图像_Android_Image_Url_Picasso - Fatal编程技术网

Android 使用毕加索从url获取图像

Android 使用毕加索从url获取图像,android,image,url,picasso,Android,Image,Url,Picasso,我想从url加载图像并将其保存在sd卡中的文件中,然后从文件加载并显示在图像视图中 所以我试着用毕加索加载图像。但它并没有显示在图像视图上 以下是网址: 使用毕加索加载图像 Picasso.with(MainActivity.this).load(url).into(profileImage); 如何从url下载图像。将其保存在sd卡的文件中,然后从文件中加载图像以在图像视图中显示 请帮忙。谢谢。要将其保存到sd卡中,您必须在清单中声明使用sd卡的读写权限,并向用户询问android 5.0

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

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

以下是网址:

使用毕加索加载图像

Picasso.with(MainActivity.this).load(url).into(profileImage);
如何从url下载图像。将其保存在sd卡的文件中,然后从文件中加载图像以在图像视图中显示


请帮忙。谢谢。

要将其保存到sd卡中,您必须在清单中声明使用sd卡的读写权限,并向用户询问android 5.0+的这些权限。所有这些都清楚地记录在android开发者的官方网站上。
将MainActivity.class更改为getApplicationContext()

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

使用GLIDE库,它会自动将图像存储到缓存中

   Glide.with(context).load(url).into(profileImage);
注意:-仅当您第一次需要internet来加载图像时。在没有互联网的情况下,图像加载其工作状态。

编辑:-使用此渐变

compile 'com.github.bumptech.glide:glide:3.7.0'
输出:-


使用GLIDE库,它会自动将图像存储到缓存中

   Glide.with(context).load(url).into(profileImage);
注意:-仅当您第一次需要internet来加载图像时。在没有互联网的情况下,图像加载其工作状态。

编辑:-使用此渐变

compile 'com.github.bumptech.glide:glide:3.7.0'
输出:-

添加:

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



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

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

是否确实要保存到SD卡中?毕加索将在您希望显示图像并将其存储在应用程序缓存中的任何时候进行下载OK,但为什么它不起作用?@Stallion将您的相关完整代码放在清单权限的单行中,而不是您真正想要保存到SD卡中的代码?毕加索将在您希望显示图像并将其存储在应用程序缓存中时进行下载OK,但为什么它不起作用?@Stallion将您的相关完整代码放在清单权限Alspath编译库的单行代码中@苏西·比卡索工作得很好。。。您的设备中可能存在某些Outmerroyexception检查您的LagCat错误。。。。。在问题中,我更新了输出…我没有得到任何异常@寿司:仔细检查你的日志。。。。。。试试这个
Picasso.with(this).load(url).resize(10001000).into(profileImage)我们可以得到毕加索存储的文件路径吗?我想将文件名存储在数据库中@编译库的路径是什么@苏西·比卡索工作得很好。。。您的设备中可能存在某些Outmerroyexception检查您的LagCat错误。。。。。在问题中,我更新了输出…我没有得到任何异常@寿司:仔细检查你的日志。。。。。。试试这个
Picasso.with(this).load(url).resize(10001000).into(profileImage)我们可以得到毕加索存储的文件路径吗?我想将文件名存储在数据库中@您已经声明了权限。问题是它没有加载。@rei Koleciu做了我建议的更改吗?毕加索也保存在缓存中。你不需要滑翔。我已经声明了权限。问题是它没有加载。@rei Koleciu做了我建议的更改吗?毕加索也保存在缓存中。你不需要滑翔。
    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();
    }
}


}