Android:具有比例宽度和相同高度的自定义视图
我尝试为我的 Sketcher 应用程序实现一个良好的可重复使用的颜色选择器。说明和屏幕截图位于: http://bit.ly/sketcherapp
问题是我被困在良好的“可调整大小”用户界面使我能够支持具有不同屏幕尺寸的各种设备。
顶部的两个小部件应该具有相同的高度并且具有成比例的宽度:80 到 20。很高兴在 XML 中指定填充。
目前的实施情况并不好。我将一些值硬编码到代码中,而且由于布局测量不准确,它在 Xoom 设备上看起来很糟糕。
有什么方法可以实现这种行为吗?理想情况下,我需要某种方法来做到这一点,就像使用 HTML 表(伪代码):
table.width=100%, td1.width=80%, td2.padding=5px, ...
或类似的东西。
当前实现:
- 代码: https://github.com/wargoth/Sketcher/tree/ master/src/org/sketcher/colorpicker
- 布局: https://github.com/wargoth/Sketcher/blob/ master/res/layout/color_picker.xml
谢谢。
I try to implement a good reusable color picker for my Sketcher application. Instructions and screenshots are here: http://bit.ly/sketcherapp
The problem is I'm stuck with a good "resizable" UI which enable me to support wide range of devices with different screen sizes.
The top two widgets should be the same height and have proportional widths: 80 to 20. Also it would be nice to specify paddings in XML.
Current implementation is not good. I hardcoded some values into code and also it looks bad on Xoom devices because of inaccurate layout measurements.
Is there any way to implement this behavior? Ideally, I need some way to do it like with HTML tables (pseudocode):
table.width=100%, td1.width=80%, td2.padding=5px, ...
or something like that.
Current implementation:
- code:
https://github.com/wargoth/Sketcher/tree/master/src/org/sketcher/colorpicker - layout:
https://github.com/wargoth/Sketcher/blob/master/res/layout/color_picker.xml
Thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
对两个小部件使用水平
LinearLayout
、android:layout_width="0dip"
,并且 <分别为 code>android:layout_weight="80" 和android:layout_weight="20"
。使用 android:paddingLeft 和 kin。
Use a horizontal
LinearLayout
,android:layout_width="0dip"
for both widgets, andandroid:layout_weight="80"
andandroid:layout_weight="20"
, respectively.Use
android:paddingLeft
and kin.好的。我不再对它感到无聊,而是为每个屏幕尺寸创建了专用布局。
OK. I stopped boring with it and created dedicated layouts for each screen size.