关于动态修改UI的大小 在java代码中,我们可以通过LayoutParams这个类来实现动态的修改UI的大小。但是问题是,Android提供了多种长度单位(px,dp等)。 默认情况下,LayoutParams结构设定width和height的单位是px,那我能否把单位设定为dp呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我记得是可以的,试试就知道了。dp是和密度相关的单位。px是按像素算的 但其实这样的修改操作只是为了单一的分辨率而言的,如果自适应,那还是通过控制布局文件来改变大小吧,比如使用reletivelayout 在代码中设定单位都是px,要与dp对应请先进行单位换算 我目前的解决方案是这样的: 在res/values目录下建立dimension.xml文件然后再这个文件中声明我要的高度:<dimen name="Item_Height">65dp</dimen> 然后,在java文件中这样调用: int ItemHeight = mContext.getResources().getDimensionPixelSize(R.dimen.Item_Height); 这样,Android就会自动的帮我把dp单位根据当前的屏幕密度,计算为px单位。 不过,dp单位被计算为px单位的时候,会自动把小数点的部分丢掉,所以实际上,这里还是有误差存在的,最终出来的界面效果,有点差强人意啊。 用getDimension得到float值,自己再转换为int呢?这样效果会不会好点? 新手求助!!! android textview怎样实现文字跑马灯效果(垂直移动) 问个jni相关的问题 各位进来看看啊,帮助下我,谢谢 string.xml特殊符号转译 拍照裁剪图片后如何适配ImageView? 多分辨率,多尺寸的android设备,res资源适配问题,求大神指导 OkHttp3中Request导入时出错,请各位大神指点一下!!! android 如何绘制轨迹? 关于手机对HDMI支持的硬件要求 android是一个怎么样的学习过程 ContentProvider中的“完全限定的授权名”和“基础授权名称”是什么意思?
在res/values目录下建立dimension.xml文件然后再这个文件中声明我要的高度:
<dimen name="Item_Height">65dp</dimen>
然后,在java文件中这样调用:
int ItemHeight = mContext.getResources().getDimensionPixelSize(R.dimen.Item_Height);
这样,Android就会自动的帮我把dp单位根据当前的屏幕密度,计算为px单位。
不过,dp单位被计算为px单位的时候,会自动把小数点的部分丢掉,所以实际上,这里还是有误差存在的,最终出来的界面效果,有点差强人意啊。