Android:自定义Dialog大小,显示圆角
经过测试,可以使用.
-----------------------------------------------------------
AlertDialog.Builder builder = new AlertDialog.Builder(this);
AlertDialog dialog = builder.create();
int screenWidth_px = PX_DP_utils.getScreenWidth_PX(this);
int screenHeight_px = PX_DP_utils.getScreenheight_PX(this);
dialog.show();
//需要设置属性,否则dialog的大小不起作用!必须先show再set属性
WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
params.width = (int) (screenWidth_px * 0.7 + 0.5f);
params.height = (int) (0.6 * screenHeight_px + 0.5f);
//设置位置的属性
Window dialogWindow = dialog.getWindow();
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
dialogWindow.setGravity(Gravity.LEFT | Gravity.TOP); /*
* lp.x与lp.y表示相对于原始位置的偏移.
* 当参数值包含Gravity.LEFT时,对话框出现在左边,所以lp.x就表示相对左边的偏移,负值忽略.
* 当参数值包含Gravity.RIGHT时,对话框出现在右边,所以lp.x就表示相对右边的偏移,负值忽略.
* 当参数值包含Gravity.TOP时,对话框出现在上边,所以lp.y就表示相对上边的偏移,负值忽略.
* 当参数值包含Gravity.BOTTOM时,对话框出现在下边,所以lp.y就表示相对下边的偏移,负值忽略.
* 当参数值包含Gravity.CENTER_HORIZONTAL时
* ,对话框水平居中,所以lp.x就表示在水平居中的位置移动lp.x像素,正值向右移动,负值向左移动.
* 当参数值包含Gravity.CENTER_VERTICAL时
* ,对话框垂直居中,所以lp.y就表示在垂直居中的位置移动lp.y像素,正值向右移动,负值向左移动.
* gravity的默认值为Gravity.CENTER,即Gravity.CENTER_HORIZONTAL |
* Gravity.CENTER_VERTICAL.
*
* 本来setGravity的参数值为Gravity.LEFT | Gravity.TOP时对话框应出现在程序的左上角,但在
* 我手机上测试时发现距左边与上边都有一小段距离,而且垂直坐标把程序标题栏也计算在内了,
* Gravity.LEFT, Gravity.TOP, Gravity.BOTTOM与Gravity.RIGHT都是如此,据边界有一小段距离
*/
lp.x = 100; // 新位置X坐标
lp.y = 100; // 新位置Y坐标
lp.width = 300; // 宽度
lp.height = 300; // 高度
lp.alpha = 0.7f; // 透明度 // 当Window的Attributes改变时系统会调用此函数,可以直接调用以应用上面对窗口参数的更改,也可以用setAttributes
// dialog.onWindowAttributesChanged(lp);
dialogWindow.setAttributes(lp);
Window dialogWindow = dialog.getWindow();dialogWindow.getDecorView().setPadding(0, 0, 0, 0);//去除边框
// 必须使用这个方法,不能使用dialog.setView()的方法
dialog.getWindow().setContentView(R.layout.dialog_picpick_three);
//设置dialog的背景颜色为透明色,就可以显示圆角了!!
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog.getWindow().setAttributes(params); //------------------------------------EditText相关代码,能够获取到焦点,能够直接弹出软键盘.
//解决dilaog中EditText无法弹出输入的问题
dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); //弹出对话框后直接弹出键盘
et_newReason.setFocusableInTouchMode(true);
et_newReason.requestFocus();
CmzBossApplication.handler.postDelayed(new Runnable() {
@Override
public void run() {
InputMethodManager inputManager =(InputMethodManager) et_newReason.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.showSoftInput(et_newReason, 0);
}
}, 100);
//---------------------------解决RecycleView下的matchparent不好用的问题
class MyRVAdapter extends RecyclerView.Adapter<MyRVAdapter.VH> {
@Override
public VH onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.exchangeveg_reason_item, parent, false);//必须用这种方式来填充View return new VH(view);
} @Override
public void onBindViewHolder(VH holder, final int position) {
holder.tv_reason.setText(exchange_veg_reasons.get(position).reason);
holder.iv_reason_reduce.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//删除本行的ITEM
String reason_id = exchange_veg_reasons.get(position).id;
HttpCashManger.getInstance().postExchangeReduceReason(reason_id, new HttpCallback() {
@Override
public void onSuccess(String result) {
System.out.println("删除备注信息成功:" + result);
exchange_veg_reasons.remove(exchange_veg_reasons.get(position));
myRVAdapter.notifyDataSetChanged();
} @Override
public void onFail(Exception e) { }
});
}
}); } @Override
public int getItemCount() {
return exchange_veg_reasons.size();
} class VH extends RecyclerView.ViewHolder {
public TextView tv_reason;
public ImageView iv_reason_reduce; public VH(View itemView) {
super(itemView);
tv_reason = (TextView) itemView.findViewById(R.id.ecr_tuicai_tv_item_reason);
iv_reason_reduce = (ImageView) itemView.findViewById(R.id.ecr_tuicai_iv_item_reaosn_reduce);
}
} }
Android:自定义Dialog大小,显示圆角的更多相关文章
- android 自定义Dialog去除黑色边框
在自定义Dialog时显示的界面中老是有黑色的边框,下面就介绍使用style去除黑色边框方法. 首先在values/styles定义自定义样式: <style name="MyDial ...
- Android自定义 Dialog 对话框
Android自定义Dialoghttp://www.cnblogs.com/and_he/archive/2011/09/16/2178716.html Android使用自定义AlertDialo ...
- android 自定义Dialog背景透明及显示位置设置
先贴一下显示效果图,仅作参考: 代码如下: 1.自定义Dialog public class SelectDialog extends AlertDialog{ public SelectDialog ...
- Android—自定义Dialog
在 Android 日常的开发中,Dialog 使用是比较广泛的.无论是提示一个提示语,还是确认信息,还是有一定交互的(弹出验证码,输入账号密码登录等等)对话框. 而我们去看一下原生的对话框,虽然随着 ...
- Android自定义Dialog(美化界面)
前言:在做项目的时候,发现dialog界面太丑陋,从csdn上下载了一份自定义dialog的源码,在他的基础上对界面进行美化...有需要的朋友可以直接拿走 效果图如下: 主要代码: /** * 自定义 ...
- Android自定义Dialog及其布局
实际项目开发中默认的Dialog样式无法满足需求,需要自定义Dialog及其布局,并响应布局中控件的事件. 上效果图: 自定义Dialog,LogoutDialog: 要将自定义布局传入构造函数中, ...
- Android自定义Dialog
Android开发过程中,常常会遇到一些需求场景——在界面上弹出一个弹框,对用户进行提醒并让用户进行某些选择性的操作, 如退出登录时的弹窗,让用户选择“退出”还是“取消”等操作. Android系统提 ...
- Android 自定义Dialog类,并在Activity中实现按钮监听。
实际开发中,经常会用到Dialog,比如退出时候会弹出是否退出,或者还有一些编辑框也会用Dialog实现,效果图如下: 开发中遇到的问题无非在于如果在Activity中监听这个Dialog中实现的 ...
- Android 自定义Dialog 去除阴影
自定义Dialog中添加下列代码: window.clearFlags( WindowManager.LayoutParams.FLAG_DIM_BEHIND);
随机推荐
- Servlet部署描述文件(web.xml)
最近看了下配置文件(Deployment Descriptor:简称DD),又称部署描述文件,下面详细介绍下该文件的组成和作用: 一.<web-app>有四个属性: 1.xmlns:申明了 ...
- iOS extern使用教程
ios开发使用extern访问全局变量 使用extern关键字法: 1 .新建Constants.h文件(文件名根据需要自己取),用于存放全局变量: 2. 在Constants.h中写入你需要的全局变 ...
- [置顶] ROS探索总结(十一)——机器视觉
机器视觉在计算机时代已经越来越流行,摄像头价格越来越低廉,部分集成深度传感器的混合型传感器也逐渐在研究领域普及,例如微软推出的Kinect,而且与之配套的软件功能十分强大,为开发带来了极大的便利.RO ...
- Leetcode-39-Submission Details (Medium)
1.首先对数组进行排序 2.递归搜索符合的元素 3.注意回溯 超越67%的用户 #!/usr/local/bin/python3 # -*- coding: utf-8 -*- __author__ ...
- 【1】Hover 效果收集
各种 hover 效果 github repository>> git 仓库 1. 背景图的 hover 效果 原页面>> githubSite>>
- 启动web项目,报内存不足错误的解决方法
Initialization of bean failed; nested exception is java.lang.OutOfMemoryError: Java heap space 原因: 在 ...
- linux下如何查询jdk安装路径
1:echo $JAVA_HOME 使用$JAVA_HOME的话能定位JDK的安装路径的前提是配置了环境变量$JAVA_HOME,否则如下所示,根本定位不到JDK的安装路径 [root@localho ...
- Discuz! X3.2重置管理员账号
主要是使用了Tools急诊箱.先看一下Tools急诊箱的主要功能: 多种模式在线安装Discuz!,或者重装 重置管理员账号:将把您指定的会员设置为管理员 关闭功能:一键关闭/打开 [站点|插件]的操 ...
- MAC OS 常用软件及开发工具
1.各个版本的 Mac OS 链接: http://pan.baidu.com/s/1mgDtCi0 密码: 4y3u 2.Xcode xcode_4.6.3 链接: http://pan.baidu ...
- CoreJavaE10V1P3.2 第3章 Java的基本编程结构-3.2 注释
3.2 注释 1. //形式注释 System.out.println("We will not use 'Hello, World!'"); // is this too cut ...