2016-09-05 55 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(放入水庫>阿尼姆)

<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); 

從片段

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

我試過了,但還是不行。 –

1

我跟了一切。

新增.dontAnimate 添加了所有必要的權限,互聯網,ACCESS_NETWORK_STATE

但沒有任何工程。

最後我發現了圖片無法加載的原因,我的圖片網址沒有httphttps。我在我的圖片網址前添加了http://,並且加載完美。