先来布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:gravity="center"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/LinearLayout"
android:layout_width="240dp"
android:layout_height="120dp"
android:background="@color/common_dark"
android:gravity="center"
android:orientation="horizontal" >
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleInverse"
android:layout_width="90dp"
android:layout_height="80dp"
android:background="@android:color/transparent"
android:layout_gravity="center" />
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingLeft="0dp"
android:paddingStart="0dp"
android:textColor="@color/colorWhite" />
</LinearLayout>
</LinearLayout>
style="?android:attr/progressBarStyleInverse"
设置progress为默认样式
新建LoadDialog类,继承Dialog
package com.nordicsemi.nrfUARTv2;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.Window;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.nordicsemi.AYDrone.R;
/**
* Created by qinhan on 2017/7/7.
*/
public class LoadingDialog extends Dialog{
TextView tv;
public LoadingDialog(Context context) {
super(context);
}
private LoadingDialog(Context context, int theme) {
super(context, theme);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.dialog_loading);
tv = (TextView)this.findViewById(R.id.tv);
tv.setText("正在上传...");
LinearLayout linearLayout = (LinearLayout)this.findViewById(R.id.LinearLayout);
linearLayout.getBackground().setAlpha(150);
}
@Override
public void dismiss() {
super.dismiss();
}
}
requestWindowFeature(Window.FEATURE_NO_TITLE);
设置Window标题为空,不然会有一块空白,这里我纠结了半天,而且通过设置格式也无法修改
public LoadingDialog(Context context) {
super(context);
}
即 LoadingDialog loadingDialog = new LoadingDialog(MainActivity.this);
若定义
public LoadingDialog(Context context, int theme) {
super(context, theme);
}
loadingDialog = new LoadingDialog(MainActivity.this, ProgressDialog.THEME_DEVICE_DEFAULT_DARK);
loadingDialog.setCanceledOnTouchOutside(false); loadingDialog.show();
这里也可这样:
loadingDialog = new LoadingDialog(MainActivity.this, ProgressDialog.THEME_DEVICE_DEFAULT_DARK); //透明 Window window = loadingDialog.getWindow(); WindowManager.LayoutParams lp = loadingDialog.getWindow().getAttributes(); lp.width = 200; // 宽度 lp.height =70; // 高度 lp.alpha = 0.9f; // 透明度 window.setAttributes(lp);
loadingDialog.setCanceledOnTouchOutside(false); loadingDialog.show();
初学,共勉