1. 程式人生 > >仿招商銀行載入loading效果

仿招商銀行載入loading效果

想要 isf () 動畫 don ride true chan layout

在招商銀行android手機app中。有例如以下圖所看到的的loading載入效果:

技術分享


實現這個效果還是比較簡單,就是自己定義dialog,設置自己想要的布局。然後設置旋轉動畫。

主要步驟:

1,寫布局文件

2,設置dialog的主題

3,自己定義dialog繼承 自Dialog

4,設置旋轉動畫

5。使用

第一步:編寫dialog_merchantbank.xml

<?xml version="1.0" encoding="utf-8"?

> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:layout_centerInParent="true"> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal"> <ImageView android:id="@+id/iv_loading_bg" android:layout_width="40dp" android:layout_height="40dp" android:layout_centerInParent="true" android:src="@drawable/loading_bg" /> <ImageView android:id="@+id/iv_loading_roll" android:layout_width="40dp" android:layout_height="40dp" android:layout_centerInParent="true" android:src="@drawable/loading_roll" /> </RelativeLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="16sp" android:text="登錄中,請稍後..."/> </LinearLayout> </RelativeLayout>


第二步:編寫主題樣式

    <style name="common_dialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowBackground">@color/white</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>
第三步:自己定義MerchantBankDialog繼承自Dialog

/**
 * 仿招商銀行loading dialog
 */
public class MerchantBankDialog extends Dialog{

    private Context mContext;
    private static MerchantBankDialog dialog;

    public MerchantBankDialog(Context context) {
        super(context);
        mContext = context;
    }

    public MerchantBankDialog(Context context, int themeResId) {
        super(context, themeResId);
        mContext = context;
    }

    public static MerchantBankDialog createDialog(Context context){
        //1設置樣式
        dialog = new MerchantBankDialog(context,R.style.common_dialog);
        //2設置布局
        dialog.setContentView(R.layout.dialog_merchantbank);
        dialog.getWindow().getAttributes().gravity = Gravity.CENTER;
        dialog.setCanceledOnTouchOutside(false);
        //dialog.setCancelable(false);// 不能夠用“返回鍵”取消
        return dialog;
    }

    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
        if(hasFocus && dialog !=null){
            //3載入旋轉動畫
            ImageView iv_loading_roll = (ImageView) dialog.findViewById(R.id.iv_loading_roll);
            Animation loadingAnim = AnimationUtils.loadAnimation(
                    mContext, R.anim.rotate_loading);
            iv_loading_roll.startAnimation(loadingAnim);
        }
    }
}

第四步:編寫旋轉動畫xml文件,rotate_loading.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:shareInterpolator="false" >
    <rotate
        android:duration="1500"
        android:fromDegrees="0"
        android:interpolator="@android:anim/linear_interpolator"
        android:pivotX="50%"
        android:pivotY="50%"
        android:repeatCount="-1"
        android:repeatMode="restart"
        android:startOffset="-1"
        android:toDegrees="+360" />
</set>

第五步:點擊顯示loading提示框

<span style="white-space:pre">	</span>btn_openzhaohangloading.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                MerchantBankDialog dialog = MerchantBankDialog.createDialog(MainActivity.this);
                dialog.show();
            }
        });

至此。基本功能已實現。如有疑問歡迎留言或加群討論:196615382,如需源代碼,點擊下載

。。




仿招商銀行載入loading效果