自定义dialog

完整代码请看github:https://github.com/anzhuojinjie/MeiTuanDialog
在drawable文件夹中创建frame_meituan动画资源xml文件

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">
    //帧动画的自动执行:oneshot  。 如果为true,表示动画只播放一次停止在最后一帧上,如果设置为false表示动画循环播放。
    <item android:drawable="@drawable/progress_loading_image_01"
           android:duration="150"/>
    <item android:drawable="@drawable/progress_loading_image_02"
        android:duration="150"/>
</animation-list>

创建dialog的layout文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center">

    <ImageView
        android:id="@+id/iv_loading"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/frame_meituan"/>

    <TextView
        android:id="@+id/tv_loading"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/iv_loading"
        android:layout_centerHorizontal="true"
        android:textSize="20sp"
        android:text="正在加载中.." />

</RelativeLayout>

自定义dialog

package com.hsg.meituandialog;

import android.app.ProgressDialog;
import android.content.Context;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;

/**
 * Created by Joe on 2017/1/3.
 */

public class MyDialog extends ProgressDialog {
    private Context mContext;
    private String mLoadingTip;
    private ImageView iv_loading;
    private TextView tv_loading;
    private AnimationDrawable mAnimation;

    public MyDialog(Context context,String content) {
        super(context);
        this.mContext = context;
        this.mLoadingTip = content;
    }

    /**
     * ProgressDialog不是ViewGroup,自定义布局通过setContentView方法加载进来自定义布局。要重写onCreate
     * 对话框创建的时候调用
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.setCancelable(false);//设置点击屏幕不能消失
        initview();
        initdata();
    }

    private void initview() {
        setContentView(R.layout.progress_dialog);
        iv_loading = ((ImageView) findViewById(R.id.iv_loading));
        tv_loading = ((TextView) findViewById(R.id.tv_loading));
    }

    private void initdata() {
        // 通过ImageView对象拿到背景显示的AnimationDrawable
        mAnimation = ((AnimationDrawable) iv_loading.getBackground());
        //主界面点击登录,立即调用这里的动画显示功能
        mAnimation.start();
        //设置正在加载中信息
        tv_loading.setText(mLoadingTip);
    }

    @Override
    public void dismiss() {
        super.dismiss();
        //对话框关闭,同时关闭掉动画。节约资源
        mAnimation.stop();
        mAnimation = null;
    }
}

调用

public class MainActivity extends AppCompatActivity {
    private MyDialog myDialog;
    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what){
                case 0x01:
                    myDialog.dismiss();
                    Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
                    break;
                default:
                    break;
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void btnClick(View view) {
        switch (view.getId()){
            case R.id.btn_loading_start:
                myDialog = new MyDialog(this,"正在登录。。。");
                myDialog.show();
                handler.sendEmptyMessageDelayed(0x01,5000);
                break;
            default:
                break;
        }
    }
}
阅读更多
个人分类: 安卓基础
想对作者说点什么? 我来说一句

自定义Dialog

2011年10月25日 46KB 下载

自定义圆角Dialog

2010年06月24日 116KB 下载

Android 自定义dialog

2011年11月18日 75KB 下载

android 自定义dialog

2015年08月13日 7.7MB 下载

自定义dialog实现登录框

2013年12月10日 1.26MB 下载

没有更多推荐了,返回首页

不良信息举报

自定义dialog

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭