我在我的应用程序中使用自定义对话框。所以我创建了一个自定义对话框类,其中我调用了一个包含图像视图的XML布局。
这是我的CustomDialog类代码......
public class CustomDialog extends DialogFragment {
public static CustomDialog newInstance() {
return new CustomDialog();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.dialog, container, false);
Glide.with(this).load(R.drawable.loader1).placeholder(R.drawable.loader1)
.into((ImageView) v.findViewById(R.id.progress)); //loader1 is a gif file
getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
if (getDialog() == null)
super.setShowsDialog (false);
return v;
}
}
这是我的xml文件代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00FFFFFF"
android:orientation="vertical">
<ImageView //image view containing the loader gif
android:id="@+id/progress"
android:layout_width="40dp"
android:background="#00FFFFFF"
android:layout_height="40dp" />
</LinearLayout>
我把我的gif放在所有可绘制的文件夹中但gif加载器在旋转任何设备大小时仍然模糊,无论是hdpi,mpdi等。 建议解决方案,以便加载器不会模糊
答案 0 :(得分:0)
您可以将您的Glide代码更改为此以进行测试
Glide.with(context).load(R.drawable.loading).asGif().diskCacheStrategy(DiskCacheStrategy.SOURCE).crossFade().into(loadingImageView);
或使用此库https://github.com/koral--/android-gif-drawable加载GIF
编辑:如果您使用上述库,请将android:background="@drawable/bg_anim
从xml更改为android:background="@android:color/transparent"
EDIT2 :根据Glide所有者的说法,版本3.8.0-SNAPSHOT或更高版本将解决透明功能。使用此:
compile 'com.github.bumptech.glide:glide:3.8.0-SNAPSHOT'