70

Glide Libraryを使用して、GIF 画像を画像ビューでプレースホルダーの読み込みとして表示しようとしています。

Glide.with(context)
    .load(ImageUrl())
    .placeholder(R.drawable.loading2)
    .asGif()
    .crossFade()
    .into(image);

このファイルを表示しようとしました

loading2.gif

しかし、このエラーが発生します:

エラー:(54, 86) エラー: シンボル メソッド asGif() が見つかりません

imageViewでGlideを使用してGIFファイルを表示するにはどうすればよいですか?

4

14 に答える 14

1

あなたのGIFを生のフォルダに入れて、以下のコードを使用して、gradleに以下の依存関係を追加してください

        //for glide
implementation 'com.github.bumptech.glide:glide:4.12.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'
   ImageView layoutAnim;

 //load gif file to imageView where layoutanim is my imageView

    Glide.with(this).asGif().load(R.raw.backloader).into(layoutAnim);

  
于 2021-06-02T10:18:29.460 に答える
0

これが最善の方法です

 Glide.with(a).load(item[position])
            .thumbnail(Glide.with(a).load(R.drawable.preloader))
            .fitCenter()
            .crossFade()
            .into(imageView);
于 2016-10-09T18:48:27.313 に答える
0

このソリューションは一種の回避策です

<RelativeLayout
    android:layout_width="wrap_content"
    android:id="@+id/ImageContainer"
    android:background="#fff"
    android:layout_height="wrap_content">
    <ImageView
        android:layout_width="wrap_content"
        android:id="@+id/loadingImageView"
        android:layout_centerInParent="true"
        android:layout_height="wrap_content"/>
    <ImageView
        android:id="@+id/mainImageView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="centerCrop"
        android:layout_centerInParent="true"
     />
</RelativeLayout>
  1. 1 つを使用する代わりに、2 つの ImageView を使用します

  2. @Preetam によって与えられたソリューションを使用して、最初の ImageView に gif をロードします。

    ImageView loadingImageView = (ImageView) findViewById(R.id.loadingImageView);
    GlideDrawableImageViewTarget loadingImageViewTarget = new GlideDrawableImageViewTarget(loadingImageView);
    Glide.with(this).load(R.raw.spinner).into(loadingImageViewTarget);  
    
  3. 2 番目の ImageView でネットワークから画像を読み込みます (ネットワークから画像が読み込まれた後に、読み込み中の gif を非表示にしたくない場合は、順序が重要です)

    ImageView mainImageView = (ImageView) findViewById(R.id.mainImageView);
    GlideDrawableImageViewTarget mainImageViewTarget = new GlideDrawableImageViewTarget(mainImageView);
    Glide.with(this).load(imageUrl).into(mainImageViewTarget);
    
于 2016-08-12T16:15:10.510 に答える
0

これを試して。それは私にとってはうまくいきましたし、あなたのコードでもうまくいきます.画像とgifの両方でも機能します.

ImageView imageView = (ImageView) findViewById(R.id.test_image); 
    GlideDrawableImageViewTarget imagePreview = new GlideDrawableImageViewTarget(imageView);
    Glide
            .with(this)
            .load(url)
            .listener(new RequestListener<String, GlideDrawable>() {
                @Override
                public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {                       
                    return false;
                }

                @Override
                public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
                    return false;
                }
            })
            .into(imagePreview);
}
于 2017-02-17T22:47:28.807 に答える