关于动态修改UI的大小

a220315410 2011-05-13 09:56:31
在java代码中,我们可以通过LayoutParams这个类来实现动态的修改UI的大小。但是问题是,Android提供了多种长度单位(px,dp等)。
默认情况下,LayoutParams结构设定width和height的单位是px,那我能否把单位设定为dp呢?
...全文
203 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
a220315410 2011-05-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ameyume 的回复:]
引用 4 楼 a220315410 的回复:

我目前的解决方案是这样的:
在res/values目录下建立dimension.xml文件然后再这个文件中声明我要的高度:
HTML code
<dimen name="Item_Height">65dp</dimen>

然后,在java文件中这样调用:
Java code
int ItemHeight = mContext.ge……
[/Quote]
这个效果还可以,谢谢雨梦
a220315410 2011-05-13
  • 打赏
  • 举报
回复
我目前的解决方案是这样的:
在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单位的时候,会自动把小数点的部分丢掉,所以实际上,这里还是有误差存在的,最终出来的界面效果,有点差强人意啊。
Sodino 2011-05-13
  • 打赏
  • 举报
回复
在代码中设定单位都是px,要与dp对应请先进行单位换算
dinjay 2011-05-13
  • 打赏
  • 举报
回复
但其实这样的修改操作只是为了单一的分辨率而言的,如果自适应,那还是通过控制布局文件来改变大小吧,比如使用reletivelayout
dinjay 2011-05-13
  • 打赏
  • 举报
回复
我记得是可以的,试试就知道了。dp是和密度相关的单位。px是按像素算的
a220315410 2011-05-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ameyume 的回复:]
引用 4 楼 a220315410 的回复:

我目前的解决方案是这样的:
在res/values目录下建立dimension.xml文件然后再这个文件中声明我要的高度:
HTML code
<dimen name="Item_Height">65dp</dimen>

然后,在java文件中这样调用:
Java code
int ItemHeight = mContext.ge……
[/Quote]
恩,这个方法可以试试。我马上去试试
ameyume 2011-05-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 a220315410 的回复:]

我目前的解决方案是这样的:
在res/values目录下建立dimension.xml文件然后再这个文件中声明我要的高度:
HTML code
<dimen name="Item_Height">65dp</dimen>

然后,在java文件中这样调用:
Java code
int ItemHeight = mContext.getResource……
[/Quote]
用getDimension得到float值,自己再转换为int呢?这样效果会不会好点?

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧