创建优美dialog

public class SetupDialog extends Dialog implements View.OnClickListener{

	private Context context;
	private WindowManager wm;
	private RelativeLayout change_user;
	private RelativeLayout change_url;
	
	public SetupDialog(Context context, int theme,WindowManager wm) {
		super(context, theme);
		// TODO Auto-generated constructor stub
		this.context=context;
		this.wm=wm;
	}

	

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		LayoutInflater inflater = LayoutInflater.from(context);
		View v = inflater.inflate(R.layout.setupdialog, null);
		change_user = (RelativeLayout)v.findViewById(R.id.change_user);
		change_user.setOnClickListener(this);
		change_url = (RelativeLayout)v.findViewById(R.id.change_url);
		change_url.setOnClickListener(this);
	    setContentView(v);
//	    setTitle("设置");
	    Window dialogWindow = getWindow();
	    WindowManager.LayoutParams lp = dialogWindow.getAttributes();
//	     dialogWindow.setGravity(Gravity.LEFT | Gravity.TOP);
	    dialogWindow.setGravity(Gravity.CENTER);
	     DisplayMetrics dm = new DisplayMetrics();    
	     Display d = wm.getDefaultDisplay(); // 获取屏幕宽、高用
	     d.getMetrics(dm);
//	     float density  = dm.density;        // 屏幕密度(像素比例:0.75/1.0/1.5/2.0)  
//	     lp.x = 0; // 新位置X坐标
//	     lp.y = (int)(60*density+0.5f); // 新位置Y坐标
	     lp.alpha=0.9f;
	     lp.width = (int) (d.getWidth() * 0.8); // 宽度
	     lp.height = (int) (d.getHeight() * 0.3); // 高度
	     
	     dialogWindow.setAttributes(lp);
	}

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		switch(v.getId()){
		case R.id.change_url:
			Intent intent = new Intent(context,SetupActivity.class);
			intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
			context.startActivity(intent);
			break;
		case R.id.change_user:
			Intent intent2 = new Intent(context,LoginActivity.class);
			intent2.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
			context.startActivity(intent2);
			break;
		}
	}
	
}

复写Dialog的以下构造函数

Dialog(Context context,int theme)

创建dialog时将以下style传入第二个参数

<style name="dialog" parent="@android:style/Theme.Dialog">
                <item name="android:windowFrame">@null</item><!--边框 -->
                <item name="android:windowIsFloating">true</item><!--是否浮现在activity之上 -->
                <item name="android:windowIsTranslucent">false</item><!--半透明 -->
                <item name="android:windowNoTitle">true</item>
                <item name="android:background">@android:color/black</item>
                <item name="android:windowBackground">@null</item>
                <item name="android:backgroundDimEnabled">false</item><!--模糊 -->
        </style>


要想设置dialog没有标题,可以在OnCreate函数里面加入如下语句,在style里也可以设置,而且styel 优先

requestWindowFeature(Window.FEATURE_NO_TITLE);


如何设置dialog的位置和透明度
 Window dialogWindow = getWindow();
	    WindowManager.LayoutParams lp = dialogWindow.getAttributes();
//	     dialogWindow.setGravity(Gravity.LEFT | Gravity.TOP);
	    dialogWindow.setGravity(Gravity.CENTER);//设置dialog相对屏幕的对齐方式
	     DisplayMetrics dm = new DisplayMetrics();    
	     Display d = wm.getDefaultDisplay(); // 获取屏幕宽、高用
	     d.getMetrics(dm);
//	     float density  = dm.density;        // 屏幕密度(像素比例:0.75/1.0/1.5/2.0)  
//	     lp.x = 0; // 新位置X坐标
//	     lp.y = (int)(60*density+0.5f); // 新位置Y坐标(60为XML文件中以dp为单位的尺寸,通过获得屏幕密度将其转换为像素px尺寸)
	     lp.alpha=0.9f;
	     lp.width = (int) (d.getWidth() * 0.8); // 宽度
	     lp.height = (int) (d.getHeight() * 0.3); // 高度
	     
	     dialogWindow.setAttributes(lp);




1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值