一、前言
好久没写东西了,今天带来一个小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);
}
}