MainActivity:
package com.ruru.dialogproject; import android.app.Activity; import android.os.Bundle; import android.view.View; public class MainActivity extends Activity implements Runnable { LoadingDialog dialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.btn_name).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { dialog = new LoadingDialog(MainActivity.this); dialog.setCanceledOnTouchOutside(false); dialog.show(); new Thread(MainActivity.this).start(); } }); } public void run() { try { Thread.sleep(5000); dialog.dismiss(); } catch (InterruptedException e) { e.printStackTrace(); } } }
activity_main:
LoadingDialog:
package com.ruru.dialogproject; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.widget.LinearLayout; import android.widget.TextView; /** * Created by 27c1 on 2017/1/4. */public class LoadingDialog extends Dialog { private TextView tv; /** * style很关键 */ public LoadingDialog(Context context) { super(context, R.style.loadingDialogStyle); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.dialog_loading); tv = (TextView) findViewById(R.id.tv); tv.setText("正在上传....."); LinearLayout linearLayout = (LinearLayout) this.findViewById(R.id.LinearLayout); linearLayout.getBackground().setAlpha(210); } }
dialog_loading:
234567891011121314151617181920212223242526272829
R.style.loadingDialogStyle:
drawable-yuanjiao:
效果:
关于样式:
- @null
:Dialog的windowFrame框为无- true
:是否浮现在activity之上- false
:是否半透明- true
:是否显示title- @drawable/dia_bg
:设置dialog的背景- true
背景是否模糊显示- 0.6
背景的灰度
Window attributes属性详解