Android如何在屏幕中央和前面像'ProgressDialog'获得一个gif?

时间:2016-11-17 12:23:38

标签: java android progressdialog

所以,当我点击一个活动时,我想要显示一个加载gif,而不是:'ProgessDialog',但是如何在不更换其他对象的情况下将它放在屏幕中央和前面?

3 个答案:

答案 0 :(得分:0)

这个名为andorid-gif-drawable

的图书馆很棒

将库添加到项目后,您需要执行此操作:

<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.appdev.loicomelectronique.activities.MainActivity"> <VideoView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/videoView"/> </FrameLayout>

确保它位于允许居中于父级(即水平和垂直居中)的布局内,例如RelativeLayout。

答案 1 :(得分:0)

我就是这样做的:

    <FrameLayout> <!-- this can also be a CoordinatorLayout -->

        ... (content)


        <FrameLayout
            android:id="@+id/scrim"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/dark_translucent"
            android:visibility="gone">

            <ProgressBar
                android:id="@+id/progressBar"
                style="@style/Widget.AppCompat.ProgressBar.Horizontal"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_margin="24dp"
                android:indeterminate="true"/>

        </FrameLayout>
    </FrameLayout>

这与装载程序一起使用。加载器启动后,我将scrim可见性设置为visible。加载程序完成后,我将稀松布可见性设置回gone

一些事情:

  • 您应该在保存的实例状态中跟踪稀松布是否可见,因此如果用户在加载器正在进行时旋转设备,您可以立即在onCreate中再次显示稀松布。

  • 如果要覆盖可触摸控件,则应禁用所有控件直到完成。或者,您可以在网格布局上设置onTouchListener以使用触摸事件,以便有效禁用内容控件。

答案 2 :(得分:0)

<FrameLayout
        android:id="@+id/scrim"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/dark_translucent"
        android:visibility="gone">

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_margin="24dp"/>

    </FrameLayout>
</FrameLayout>

添加到build.gradle(Module.app)

dependencies {
     compile 'com.github.bumptech.glide:glide:3.6.1'
}

在您的活动中

    Glide.with(this)
            .load(imageGif)
            .asGif()
            .fitCenter()
            .crossFade()
            .into(imageView);