2017-07-19 7 views
1

を変換:グライド丸みを帯びたコーナーでは、私はグライドを使用してImageViewのに角が丸い画像をロードするには、次のコードを使用し、問題

Glide.with(this) 
       .load(url) 
       .listener(new RequestListener<Drawable>() { 
        @Override 
        public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) { 
         return false; 
        } 
        @Override 
        public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) { 
         return false; 
        } 
       }) 
       .transition(withCrossFade()) 
       .apply(new RequestOptions().transform(new RoundedCorners(50)).error(R.drawable.default_person).skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.NONE)) 
       .into(mBinding.profileImgv); 

enter image description here 画像が何らかの理由でピクセル化され得ます。誰かがどこに問題があるのか​​教えていただけますか?

+0

次に、このようなあなたのコードでそれを使うのか?私は同じ問題を抱えています。 – David

答えて

0
Glide.with(context).load(url).centerCrop().into(new BitmapImageViewTarget(imageView) { 
     @Override 
     protected void setResource(Bitmap resource) { 
      RoundedBitmapDrawable circularBitmapDrawable = 
        RoundedBitmapDrawableFactory.create(context.getResources(), resource); 
      circularBitmapDrawable.setCircular(true); 
      imageView.setImageDrawable(circularBitmapDrawable); 
     } 
    }); 
+0

サークル画像を表示したくない...画像ビューにボーダー半径を追加するだけです – tsiro

+0

@tsiro flide virsionを使用する –

+0

グライド:4.0.0-RC0バージョン – tsiro

3

私は同じ問題を持っていた、私の場合の問題点は、私はその後、ピクセル単位で持っていた小さいサイズ(320×480)、ピクセル単位でImageViewのサイズをロードしようとしたものをイメージしました。

<ImageView 
    android:id="@+id/image_program_thumb" 
    android:layout_width="match_parent" 
    android:layout_height="186dp" /> 

ProgramViewHolder.javaクラス

@BindView(R.id.image_program_thumb) ImageView mProgramThumbnail; 
..... 
void bindData(final Program item) { 
    RequestOptions requestOptions = new RequestOptions(); 
    requestOptions = requestOptions.transforms(new CenterCrop(), new RoundedCorners(16)); 
    Glide.with(itemView.getContext()) 
      .load(item.getImage()) 
      .apply(requestOptions) 
      .into(mProgramThumbnail); 
.... 

}

P.S.:xmlファイル内

マイImageViewの: 私のソリューションは、以下の通りでした私はGlideの4.2.0バージョンを使用しています

-1

私の答えで見ることができますhere、それもGlid's Generated APIを使用して達成することができます。最初の作業は必要ですが、グライドの力をあなたに与えてくれます。実際のコードを書くことができるので、何かをする柔軟性があります。長期的には良い解決策だと思います。さらに、使い方はとてもシンプルですっきりしています。

まず、セットアップGlideバージョン4+:

implementation 'com.github.bumptech.glide:glide:4.6.1' 
annotationProcessor 'com.github.bumptech.glide:compiler:4.6.1' 

そして、注釈処理をトリガするためにGLIDのアプリモジュールクラスを作成します。

@GlideModule 
public final class MyAppGlideModule extends AppGlideModule {} 

そして、実際に作業を行うグライド拡張を作成します。

@GlideExtension 
public class MyGlideExtension { 

private MyGlideExtension() {} 

    @NonNull 
    @GlideOption 
    public static RequestOptions roundedCorners(RequestOptionsoptions, @NonNull Context context, int cornerRadius) { 
     int px = Math.round(cornerRadius * (context.getResources().getDisplayMetrics().xdpi/DisplayMetrics.DENSITY_DEFAULT)); 
     return options.transforms(new RoundedCorners(px)); 
    } 
} 

これらのファイルを追加したら、プロジェクトをビルドします。こんにちは、あなたはこの問題を解決するのです

GlideApp.with(this) 
       .load(imageUrl) 
       .roundedCorners(getApplicationContext(), 5) 
       .into(imageView); 
+1

このリンクは質問に答えるかもしれませんが、ここに答えの重要な部分を含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューから](レビュー/低品質の投稿/ 19018408) – Sree

+0

コメントありがとう@Sree回答の必須部分を追加しました。 –

関連する問題