2017-04-08 17 views
1

私はGoogleの統合を介して得たリンクから画像を取得しようとしているアプリがあります。しかし、私はいつも私にエラーを与えるビットマップに写真を取得しようとすると、コードとエラーは以下の通りです:Googleのプロフィール画像からビットマップを取得できません。URL

コード:

if (google_user_gallery_pic.isEmpty() == true) 
{ 
    if (google_user_pic.isEmpty() == false) 
    { 
     onPost = null; 
     onPost2 = null; 
     onPost = getBitmapFromURL(google_user_pic); 
     onPost2 = onPost2.createScaledBitmap(onPost, 100, 100, false); 
    } 

    else 
    { 
     onPost = null; 
     onPost2 = null; 
     onPost = BitmapFactory.decodeFile(google_user_gallery_pic); 
     if (onPost == null) 
     { 
      onPost2 = BitmapFactory.decodeResource(getResources(), R.drawable.the_smallperson); 
     } 

     else 
     { 
      onPost2 = onPost2.createScaledBitmap(onPost, 100, 100, false); 
     } 
    } 
} 

else 
{ 
    onPost = null; 
    onPost2 = null; 
    onPost = BitmapFactory.decodeFile(google_user_gallery_pic); 
    if (onPost == null) 
    { 
     onPost2 = BitmapFactory.decodeResource(getResources(), R.drawable.the_smallperson); 
     //onPost2 = onPost2.createScaledBitmap(onPost, 100, 100, false); 
    } 

    else 
    { 
     onPost2 = onPost2.createScaledBitmap(onPost, 100, 100, false); 
    } 
} 

エラー:

E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: https:/lh3.googleusercontent.com/-HW5Tk9h1V2I/AAAAAAAAAAI/AAAAAAAADA8/7UbMeHbyFLM/photo.jpg: open failed: ENOENT (No such file or directory) 

URL:

https://lh3.googleusercontent.com/-HW5Tk9h1V2I/AAAAAAAAAAI/AAAAAAAADA8/7UbMeHbyFLM/photo.jpg 

このURLは1つのページに動作しますが、上の仕事をdoesnt別の両方のページはフラグメントアクティビティです。どんな助けもありがとう、ありがとう!

+0

ピカソを使用していない理由は? – rafsanahmad007

+0

@ rafsanahmad007 idkその使用方法 –

+0

ビットマップをファイルに保存しましたか...それを開こうとしましたか? – rafsanahmad007

答えて

1

このような何かにあれば、他の条件を逆にしてみてください:

if (google_user_gallery_pic.isEmpty() == false) 
{ 
    if (google_user_pic.isEmpty() == false) 
    { 
     onPost = null; 
     onPost2 = null; 
     onPost = getBitmapFromURL(google_user_pic); 
     onPost2 = onPost2.createScaledBitmap(onPost, 100, 100, false); 
    } 

    else 
    { 
     onPost = null; 
     onPost2 = null; 
     onPost = BitmapFactory.decodeFile(google_user_gallery_pic); 
     if (onPost == null) 
     { 
      onPost2 = BitmapFactory.decodeResource(getResources(), R.drawable.the_smallperson); 
     } 

     else 
     { 
      onPost2 = onPost2.createScaledBitmap(onPost, 100, 100, false); 
     } 
    } 
} 

else 
{ 
    onPost = null; 
    onPost2 = null; 
    onPost = BitmapFactory.decodeFile(google_user_gallery_pic); 
    if (onPost == null) 
    { 
     onPost2 = BitmapFactory.decodeResource(getResources(), R.drawable.the_smallperson); 
     //onPost2 = onPost2.createScaledBitmap(onPost, 100, 100, false); 
    } 

    else 
    { 
     onPost2 = onPost2.createScaledBitmap(onPost, 100, 100, false); 
    } 
} 

権限と、むしろ、このコードスニペットよりも何かを与えられているので、この

+0

ok、私はこの弟を試してみましょう –

+0

いいえ、ごめんなさい... –

1

てみ以外のそれで間違っては何もありませんでしたpicassoを使用してURLから画像ビットマップを読み込みます。

Gradleのアドオンで
private Target mTarget; //declare variable 

void loadImage(Context context, String url) { 

    final ImageView imageView = (ImageView) findViewById(R.id.image); 

    mTarget = new Target() { 
     @Override 
     public void onBitmapLoaded (final Bitmap bitmap, Picasso.LoadedFrom from){ 
      //Do something on the bitmap 
      imageView.setImageBitmap(bitmap); //set the bitmap 
     } 

     @Override 
     public void onBitmapFailed(Drawable errorDrawable) { 

     } 

     @Override 
     public void onPrepareLoad(Drawable placeHolderDrawable) { 

     } 
    }; 

    Picasso.with(context) 
      .load(url) 
      .into(mTarget); 
      ..error(R.drawable.the_smallperson) // will be displayed if the image cannot be loaded 
} 

compile 'com.squareup.picasso:picasso:2.5.2' 
+0

この目標は?それはクラスですか? –

+0

はい、あなたはそれをインポートする必要があります。 – rafsanahmad007

+0

私はSaimの答えごとに条件を逆転したときにしばらく働いたので、ロジックに何か問題があると思います... –

関連する問題