我有3个定制的Android设备。 第一个有5英寸屏幕,1280x800 res 其次是5英寸屏幕,800x480分辨率 第三个是7英寸屏幕,800x480 res
我尝试使用dp,px和英寸给出尺寸,但似乎他们无法正确支持这些屏幕具有相同的值(即使英寸似乎不是精确的英寸,但最终转换为px)。
如何使用相同的代码相对于屏幕尺寸正确调整视图大小?
答案 0 :(得分:1)
首先,要使用的正确度量单位是:dp表示控件,sp表示字体
这些通常用于边距,填充,宽度,高度和其他属性
xml drawables也可以利用像素独立性
在res / value / dimens.xml文件中定义维度(这是一个PROPOSED标准名称,您可以随意调用它),以便从所有代码中引用它们,而不是硬编码并经常重复许多文件。
然后你必须知道你应该以 mdpi 分辨率( 160 dpi )提供你的图形,它将按比例放大或缩小以匹配其他分辨率。
请注意,我说至少
对于您支持的每个分辨率,您应该在res路径中添加一个文件夹,其中包含该分辨率的相应密度的图形。
这意味着你将拥有,让我们说3分辨率mdpi,hdpi和xhdpi(今天的最爱,不包括平板电脑 - 这些应该自己配备一些文件夹):
图形进入:
RES /抽拉-MDPI
RES /抽拉-HDPI
RES /抽拉-xhdpi
只需将图形(使用相同名称)分别在这些目录中使用dpi密度为160,240,320。
现在您的图形符合分辨率。
现在,我没有意识到问题到底是什么
我的意思是,背景不合适吗?然后解决方案是使用平铺或“足够抽象”可伸展图片。
或者您可以使用 9个补丁,以及
如果问题是字体和其他对象如何相互交互,则应始终引用mdpi设备(如果您没有物理设备,则甚至可以模拟)。当事物在mdpi设备上很好地扩展时,它们假设可以在每个设备上很好地扩展
特别是对于平板电脑,您应该为值提供特定的文件夹(放置包含尺寸的dimens.xml文件的位置)
这些文件夹通常具有 values-sw600dp 或 values-sw720dp-land 等名称。后缀land表示横向模式,粒子sw ### dp表示最小尺寸(宽度或高度),所以,我想在你的情况下,你可以准备一些名为 values-sw480dp 和<的文件夹strong> values-sw480dp-land 在那里你可以放置你的dimens.xml文件,其中包含特定设备的特殊尺寸。
我想只提供非土地文件夹就足够了。