2016-09-05 17 views
-3

クイズゲームで、答えはテキストまたは画像です。私はGilde画像を使用して読み込みますが、インターネットが良好であっても画像を読み込めないユーザーもいます画像は低画質です。グライド画像が読み込まれない場合があります

ギルド問題があるかどうかわからないので、私はすべてのコードをコピーします。

if (AppConstant.arQuestionList.get(questionid).getArAnswer().get(i).getAtype() 
        .equalsIgnoreCase("image")) { 
       txtOption = new ImageView(this); 

       try { 
        Glide.with(QuestionActivity.this).load(AppConstant.arQuestionList.get(questionid) 
          .getArAnswer().get(i).getAnswer()).override(60, 60).into((ImageView) 
          txtOption); 
       }catch (OutOfMemoryError e){ 
        e.printStackTrace(); 
       } 
       txtOption.setPadding(5, 5, 5, 5); 

      } else { 
       txtOption = new TextView(this); 

       ((TextView) txtOption).setText(AppConstant.arQuestionList.get(questionid) 
         .getArAnswer().get 
           (i).getAnswer()); 
       ((TextView) txtOption).setTextColor(getResources().getColor(R.color.answer_color)); 
       ((TextView) txtOption).setTypeface(tf, Typeface.BOLD); 
       ((TextView) txtOption).setGravity(Gravity.CENTER); 
       txtOption.setPadding(10, 20, 10, 20); 
      } 

レイアウト

<LinearLayout 
     android:id="@+id/answerwrap" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="@dimen/dp_30" 
     android:layout_marginRight="@dimen/dp_30" 
     android:layout_marginTop="@dimen/dp_30" 
     android:orientation="vertical"> 

    </LinearLayout> 

答えて

2

私はここで説明していグライドを使用するための最良の方法。

//crete this method into your Utils class and call this method wherever you want to use. 
//you can set these placeHolder() and error() image static as well. I made it as comment inside this method, then no need to use [placeHolderUrl and errorImageUrl] parameters. remove it from this method. 
public static void loadImage(final Activity context, ImageView imageView, String url, int placeHolderUrl, int errorImageUrl) { 
    if (context == null || context.isDestroyed()) return; 

    //placeHolderUrl=R.drawable.ic_user; 
    //errorImageUrl=R.drawable.ic_error; 
     Glide.with(context) //passing context 
       .load(getFullUrl(url)) //passing your url to load image. 
       .placeholder(placeHolderUrl) //this would be your default image (like default profile or logo etc). it would be loaded at initial time and it will replace with your loaded image once glide successfully load image using url. 
       .error(errorImageUrl)//in case of any glide exception or not able to download then this image will be appear . if you won't mention this error() then nothing to worry placeHolder image would be remain as it is. 
       .diskCacheStrategy(DiskCacheStrategy.ALL) //using to load into cache then second time it will load fast. 
       .animate(R.anim.fade_in) // when image (url) will be loaded by glide then this face in animation help to replace url image in the place of placeHolder (default) image. 
       .fitCenter()//this method help to fit image into center of your ImageView 
       .into(imageView); //pass imageView reference to appear the image. 
} 

fade_in.xml(RES->アニメーションに入れて)

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<!--THIS ANIMATION IS USING FOR FADE IN --> 

<alpha 
    android:duration="800" 
    android:fromAlpha="0.0" 
    android:interpolator="@android:anim/decelerate_interpolator" 
    android:toAlpha="1.0" /> 

、最終的には自分の活動から

このメソッドを呼び出します。あなたのフラグメントから

Utils.loadImage(YourClassName.this,mImageView,url,R.drawable.ic_user,R.drawable.ic_error); 

OR

Utils.loadImage(getActivity,mImageView,url,R.drawable.ic_user,R.drawable.ic_error); 
+0

私は試しましたが、まだ動作していません。 –

1

私はすべてを続いています。

追加.dontAnimate 追加されたすべての必要なアクセス許可、インターネット、ACCESS_NETWORK_STATE

しかし、何も動作。

最後に、画像URLがhttpまたはhttpsでない画像URLが見つかりませんでした。私は画像URLの前にhttp://を追加して、完全に読み込みます。

関連する問題