一、前言
好久没写东西了,今天带来一个小demo,仿造微信的阻塞对话框,列一下用到的知识点:
1.自定义样式。
2.自定义shape背景和selector。
3.动画。
二、效果
废话不多说,直接看图。
三、编码与实现
1.对话框样式:
 <style name="WeixinLoadingDialog" parent="@android:Theme.Dialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowNoTitle">true</item> 
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>2.对话框内部实现:
public class LoadingDialog extends Dialog {
    public LoadingDialog(Context context) {
        super(context,R.style.WeixinLoadingDialog);
        this.context = context;
        initDialog(context);
    }
    private ImageView ivProgress;
    private TextView tvInfo;
    private Context context;
    private void initDialog(Context context) {
        setContentView(R.layout.loading_dialog_view);
        ivProgress = (ImageView)findViewById(R.id.img);
        tvInfo = (TextView)findViewById(R.id.tipTextView);
        // 显示文本
        tvInfo.setText("正在加载...");
    }
    public void showDialog(){
        Animation animation = AnimationUtils.loadAnimation(context,
                R.anim.dialog_load_animation);
        // 显示动画
        ivProgress.startAnimation(animation);
        show();
    }
    public void cancelDialog(){
        ivProgress.clearAnimation();
        this.cancel();
    }
    public void setProgressText(String text){
        tvInfo.setText(text);
    }
}源码下载