Android Custom Dailog

时间:2017-01-16 08:54:34

标签: android

我在我的应用程序中使用自定义对话框。所以我创建了一个自定义对话框类,其中我调用了一个包含图像视图的XML布局。

这是我的CustomDialog类代码......

enter image description here

    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等。 建议解决方案,以便加载器不会模糊

1 个答案:

答案 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'