有点空 就写了个仿ios的加载等待dialog,没有图片只能将就一下啊,运行效果如下:
自定义dialog代码如下:
public class LoadingWaitDialog extends Dialog {
private LayoutInflater inflater;
private DisplayMetrics displayMetrics;
private View view;
private TextView tvTip;
public LoadingWaitDialog(Context context) {
//注意:一定要更该主题,不然在5.0上显示有问题
super(context, R.style.chooseDialog);
//获取渲染器
inflater = LayoutInflater.from(context);
//获取屏幕宽高信息
displayMetrics = context.getResources().getDisplayMetrics();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//渲染布局
view = inflater.inflate(R.layout.layout_wait_dialog, null);
tvTip = (TextView) view.findViewById(R.id.tv_tip);
//下面的可以拓展动态更改progressbar的样式
ContentLoadingProgressBar progressBar = (ContentLoadingProgressBar) view.findViewById(R.id.progress);
}
@Override
public void show() {
super.show();
//设置dialog的宽高设置,注意:一定要放在show的后面,否则无效
WindowManager.LayoutParams params = getWindow().getAttributes();
params.width = (int) (displayMetrics.widthPixels * 0.5);
params.height = (int) (displayMetrics.widthPixels * 0.4);
params.gravity = Gravity.CENTER;
getWindow().setAttributes(params);
getWindow().setContentView(view);
}
}
在mainActivity中代码如下:
@Override
protected void onResume() {
super.onResume();
LoadingWaitDialog dialog = new LoadingWaitDialog(this);
dialog.show();
}
值得注意的是要定义dialog的主题,比如去除titile和那一根线,dialog的主题代码如下:
<style name="chooseDialog" parent="@android:style/Theme.Translucent">
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>//无标题
<item name="android:windowBackground">@drawable/bg_dialog</item>//背景
<item name="android:windowIsFloating">true</item>//悬浮
<item name="android:windowContentOverlay">@null</item>
<item name="android:backgroundDimEnabled">false</item>
</style>