Android自定义Dialog以控制其位置和宽高
【摘要】
1.自定义Dialog类
import android.app.Dialog;import android.content.Context;import android.view.Gravity;import android.view.View;import android.view.Window;import android.v...
1.自定义Dialog类
-
-
import android.app.Dialog;
-
import android.content.Context;
-
import android.view.Gravity;
-
import android.view.View;
-
import android.view.Window;
-
import android.view.WindowManager;
-
-
/**
-
* Created by yechaoa on 2016/10/22.
-
*/
-
-
public class MyDialog extends Dialog {
-
-
private Window window = null;
-
-
public MyDialog(Context context, boolean cancelable,
-
OnCancelListener cancelListener) {
-
super(context, cancelable, cancelListener);
-
}
-
-
public MyDialog(Context context, int theme) {
-
super(context, theme);
-
}
-
-
public MyDialog(Context context) {
-
super(context);
-
}
-
-
public void setView(View view) {
-
setContentView(view);
-
}
-
-
public void setView(int id) {
-
setContentView(id);
-
}
-
-
public void setProperty(int x, int y, int w, int h) {
-
window = getWindow();//得到对话框的窗口.
-
WindowManager.LayoutParams wl = window.getAttributes();
-
wl.x = x;//设置对话框的位置.0为中间
-
wl.y = y;
-
wl.width = w;
-
wl.height = h;
-
wl.alpha = 1f;// 设置对话框的透明度,1f不透明
-
wl.gravity = Gravity.CENTER;//设置显示在中间
-
window.setAttributes(wl);
-
}
-
-
}
-
<style name="myDialog" parent="@android:style/Theme.Dialog">
-
<!--dialog的背景,此处是一个圆角白底的xml文件,也可以是.9图-->
-
<item name="android:windowBackground">@drawable/corners_bg_normal</item>
-
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
-
<item name="android:windowFrame">@null</item><!--边框-->
-
<item name="android:windowIsFloating">true</item><!--是否浮现在activity之上-->
-
<item name="android:windowIsTranslucent">true</item><!--半透明-->
-
<item name="android:windowNoTitle">true</item><!--无标题-->
-
<item name="android:backgroundDimEnabled">true</item><!--模糊-->
-
</style>
-
<?xml version="1.0" encoding="utf-8"?>
-
<shape xmlns:android="http://schemas.android.com/apk/res/android">
-
<corners android:radius="10dp"/><!--圆角大小-->
-
<solid android:color="@color/white"/>
-
<stroke android:color="#cbcbcb" android:width="1px"/>
-
</shape>
-
final MyDialog dialog=new MyDialog(MainActivity.this, R.style.myDialog);
-
final View view = View.inflate(ManifestEditActivity.this, R.layout.dialog_submit,null);
-
dialog.setView(view);
-
dialog.setProperty(0,0, 600, 400);//设置坐标和宽高
-
dialog.setCanceledOnTouchOutside(true);
-
dialog.show();
-
Button dialogCancel= (Button) view.findViewById(R.id.dialog_cancel);
-
dialogCancel.setOnClickListener(new View.OnClickListener() {
-
@Override
-
public void onClick(View v) {
-
dialog.dismiss();
-
}
-
});
-
Button dialogConfirm= (Button) view.findViewById(R.id.dialog_confirm);
-
dialogConfirm.setOnClickListener(new View.OnClickListener() {
-
@Override
-
public void onClick(View v) {
-
//doSomething
-
-
}
-
});
文章来源: blog.csdn.net,作者:yechaoa,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/yechaoa/article/details/53836891
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)