毕加索无法从相同的网址保存到SD卡

时间:2018-10-02 05:07:12

标签: java android picasso

我想将图像从url保存到毕加索,但我的代码有问题。

我有一个变量来保存图像。

String urlImage = "http://mylink/buzz/test2.jpg";

这个工作了 但是当我使用

fileUrl = fileName +"." + fileType;
String urlImage = "http://mylink/buzz/" + fileUrl;

不起作用

fileUrl的内容为test2.jpg

这是我保存图像的代码

private Target picassoImageTarget(Context context, final String imageDir, final String imageName) {
    Log.d("picassoImageTarget", " picassoImageTarget");
    ContextWrapper cw = new ContextWrapper(context);
    final File directory = cw.getDir(imageDir, Context.MODE_PRIVATE); // path to /data/data/yourapp/app_imageDir
    return new Target() {
        @Override
        public void onBitmapLoaded(final Bitmap bitmap, Picasso.LoadedFrom from) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    final File myImageFile = new File(directory, imageName); // Create image file
                    FileOutputStream fos = null;
                    try {
                        fos = new FileOutputStream(myImageFile);
                        bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
                    } catch (IOException e) {
                        e.printStackTrace();
                    } finally {
                        try {
                            fos.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                    Log.i("image", "image saved to >>>" + myImageFile.getAbsolutePath());

                }
            }).start();
        }

        @Override
        public void onBitmapFailed(Drawable errorDrawable) {
        }
        @Override
        public void onPrepareLoad(Drawable placeHolderDrawable) {
            if (placeHolderDrawable != null) {}
        }
    };
}

及其调用毕加索的代码。

Picasso.with(DrawerActivity.this).load(url).into(picassoImageTarget(getApplicationContext(), "imageDir", fileUrl));

0 个答案:

没有答案