2016-07-02 29 views
0

私はピカソの助けを借りてURLから画像をダウンロードしようとしています。私はこれを2日以上過ごす。私も失敗した非同期タスクを試しました。私はたくさん試しました。誰か助けてください。ピカソを使ってURLから画像をダウンロードするには

protected static void postNotification(Intent intentAction, Context context,String msg,String url){ 

    NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intentAction, Notification.DEFAULT_LIGHTS | Notification.FLAG_AUTO_CANCEL); 
    /* ImageDownloaderTask image = new ImageDownloaderTask(); 
    image.execute(url);*/ 
    Bitmap bitmapImage = retriveImage(url,context); //here only i want get that image. 
    Log.d("Bitmap", String.valueOf(bitmapImage));//Its print only null 
    Notification notification = new NotificationCompat.Builder(context) 
      .setSmallIcon(R.drawable.tapn) 
      .setContentTitle("Welcome!") 
      .setContentText(msg) 
      .setStyle(new NotificationCompat.BigPictureStyle().bigPicture(bitmapImage)) 
      .setContentIntent(pendingIntent) 
      .setDefaults(Notification.DEFAULT_SOUND) 
      .setAutoCancel(true) 
      .getNotification(); 

    mNotificationManager.notify(R.string.notification_number, notification); 
} 

private static Bitmap retriveImage(String url,Context c) { 
    CacheTarget cacheTarget = new CacheTarget(); 
    Picasso.with(c) 
      .load(url) 
      .into(cacheTarget); 
    return cacheTarget.getCacheBitmap(); 
} 

private static class CacheTarget implements Target { 
    private Bitmap cacheBitmap; 
    @Override 
    public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from)  { 
     cacheBitmap = bitmap; 
    } 

    @Override 
    public void onBitmapFailed(Drawable errorDrawable) { 

    } 

    @Override 
    public void onPrepareLoad(Drawable placeHolderDrawable) { 

    } 
    public Bitmap getCacheBitmap() { 
     return cacheBitmap; 
    } 
} 

ありがとうございます!

+2

[ピカソを使用してダウンロードして保存画像]の可能な重複(http://stackoverflow.com/questions/27729976/download-画像を使用して画像を保存する) –

+0

Thats different questions .. – hikoo

+0

その質問への回答は、あなたの質問への答えも提供しています。ListViewはその質問のアクセス権です。しかし、それは問題ではありません主な目的は画像をダウンロードすることです.. !! –

答えて

0

これを試してみてください。これはあなたを助ける

// Define where you want to save the file 
String dirName = Environment.getExternalStorageDirectory().toString() + "/myAppData/images";  
final File storageDir = new File(dirName); 
      // Create directory 
      if (!storageDir.exists()) { 
       storageDir.mkdirs(); 
      } 
      // Your image address. ex: "http://http://stackoverflow.com/myImages.jpg" 
      String MY_IMAGE_URL = "The image url that you wish to download"; 
       final ImageView profile = new ImageView(activity); 
       final String img_path = storageDir.getAbsolutePath() + "/" + "myimage.jpg"; 
       Picasso.with(activity).load(MY_IMAGE_URL).into(profile, new Callback() { 
        @Override 
        public void onSuccess() { 
         new Handler().postDelayed(new Runnable() { 
          @Override 
          public void run() { 
           // Save bitmap to local 
           Bitmap bitmap = ((BitmapDrawable)profile.getDrawable()).getBitmap(); 
           File file = new File(img_path); 
           try { 
            file.createNewFile(); 
            FileOutputStream ostream = new FileOutputStream(file); 
            bitmap.compress(Bitmap.CompressFormat.PNG, 100, ostream); 
          ostream.close(); 
         } catch (IOException e) { 
         e.printStackTrace(); 
        } 
       } 
      },100); 
      } 
     @Override 
     public void onError() { 
     } 
}); 

ホープ:)

関連する問題