欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android自定义仿ios加载弹窗

程序员文章站 2022-03-07 12:37:54
本文实例为大家分享了android自定义仿ios加载弹窗的具体代码,供大家参考,具体内容如下效果如下:iosloaddialog类(可直接复制):public class iosloaddialog...

本文实例为大家分享了android自定义仿ios加载弹窗的具体代码,供大家参考,具体内容如下

效果如下:

Android自定义仿ios加载弹窗

iosloaddialog类(可直接复制):

public class iosloaddialog extends dialog {

    public iosloaddialog(context context) {
        super(context, r.style.loading_dialog);
        initview();
    }

    @override
    public boolean onkeydown(int keycode, keyevent event) {
        switch (keycode){
            case keyevent.keycode_back:
                if(iosloaddialog.this.isshowing())
                    iosloaddialog.this.dismiss();
                break;
        }
        return true;
    }


    private void initview(){
        setcontentview(r.layout.dialog_loading);
        animation animation = animationutils.loadanimation(getcontext(), r.anim.load_animation);
        animation.setinterpolator(new linearinterpolator());
        findviewbyid(r.id.loading_dialog_img).startanimation(animation);

        setcanceledontouchoutside(true);
        windowmanager.layoutparams attributes = getwindow().getattributes();
        attributes.alpha=0.8f;
        getwindow().setattributes(attributes);
        setcancelable(false);
    }
}

r.layout.dialog_loading文件:

<?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/dialog_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/tm"
    android:gravity="center"
    android:minheight="60dp"
    android:minwidth="180dp"
    android:orientation="vertical"
    android:padding="10dp">

    <linearlayout
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:background="@drawable/white_radian13"
        android:gravity="center"
        android:orientation="vertical">

        <imageview
            android:id="@+id/loading_dialog_img"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:scaletype="fitxy"
            android:src="@drawable/ic_svstatus_loading" />
    </linearlayout>

</linearlayout>

loading_dialog样式:

<style name="loading_dialog" parent="android:style/theme.dialog">
        <item name="android:windowframe">@null</item>
        <item name="android:windownotitle">true</item>
        <item name="android:windowbackground">@color/tm</item>
        <item name="android:windowisfloating">true</item>
        <item name="android:windowcontentoverlay">@null</item>
    </style>

white_radian13白色透明圆角背景:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <solid android:color="#f7fbfd" />
            <corners android:radius="13dp" />
        </shape>
    </item>
</layer-list>

然后奉上图片ic_svstatus_loading.png:

Android自定义仿ios加载弹窗

最后使用:

public void showdialog(){
        final iosloaddialog iosloaddialog = new iosloaddialog(this);
        iosloaddialog.show();
        new handler().postdelayed(new runnable() {
            @override
            public void run() {
                iosloaddialog.dismiss();
            }
        },1200);
    }

好了,去试试吧!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。