Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Nexus S和Moto G-can';无法区分布局_Android_Xml_Android Layout_Android Button_Android Relativelayout - Fatal编程技术网

Android Nexus S和Moto G-can';无法区分布局

Android Nexus S和Moto G-can';无法区分布局,android,xml,android-layout,android-button,android-relativelayout,Android,Xml,Android Layout,Android Button,Android Relativelayout,我正在尝试解决布局问题——我在Moto G上测试了这个res/layout/my.xml,结果很好,但在Nexus S上测试时,按钮太大了。我尝试了res/layout xhdpi/my.xml(因为Moto G是xhdpi,Nexus只是hdpi),但两个布局中总是有一个会膨胀,每个布局上都不会有不同(对于xhdpi,我现在使用带有文本的按钮,这样我可以立即看到它是否继续): 在Values文件夹中有dimen.xml文件,有3个Values文件夹(Values、Values-v11、Valu

我正在尝试解决布局问题——我在Moto G上测试了这个res/layout/my.xml,结果很好,但在Nexus S上测试时,按钮太大了。我尝试了res/layout xhdpi/my.xml(因为Moto G是xhdpi,Nexus只是hdpi),但两个布局中总是有一个会膨胀,每个布局上都不会有不同(对于xhdpi,我现在使用带有文本的按钮,这样我可以立即看到它是否继续):


在Values文件夹中有dimen.xml文件,有3个Values文件夹(Values、Values-v11、Values-v14)。如果这些文件夹中没有dimens.xml文件,则可以为它们创建dimens.xml文件,以便为不同的设备指定不同的按钮宽度和高度。像这样:- 例如:-对于值文件夹

 <dimen name="button_width">16dp</dimen>
 <dimen name="button_height">16dp</dimen>

我希望你的问题能解决。

好的,我同意这个解决方案:


最终,它在每个设备上都能完美地工作,并且实现得相当快。谢谢大家的回复

我认为它可以解决这两个设备的问题,但我现在怎么知道它是否能在其他设备上正常工作?它是更多与API版本相关的问题还是面向设备的问题?不,它将解决所有类型设备的问题,如hdpi设备、7英寸平板电脑和10英寸平板电脑……使用密度资源集限定符(例如,
-hdpi
)除可绘制资源外,任何其他资源上都存在严重的代码气味,因为几乎可以肯定您不会得到想要的。除此之外,请使用层次结构视图确定布局规则中的哪些内容导致了您的困难。这是Nexus S上的外观:这是Nexus 5上的外观:当然,按钮在ma之后是透明的king按钮可以正常工作。顶部的第一个按钮没有任何功能-只是占位符,而不是MarginTop。我一直在重新考虑我的UI,但无法将其固定,因此在任何设备上它都可以正常工作。看起来您正在尝试制作“按钮”显示在PNG/JPEG/任何背景上都可以点击。你的方法不可靠,因为按钮与整个背景无关。我只想让背景PNG中的按钮做出反应,以便飞行员真正发挥其功能(具有可点击的打开/关闭门区域)。那么你建议用什么来代替呢?这不会太难-我见过更复杂的东西可以很好地工作。“所以没有办法在ImageView上创建可单击的区域?”--安卓系统中没有高水平的内置功能。毫无疑问,有些人已经解决了这个问题,但是否有一个可重复使用的解决方案,你可以应用是一个大问题。在低水平上,你对触摸事件做出反应,并在不规则按钮的顶部绘制一些不规则的覆盖图,以指示各种高水平怀特州。
 <dimen name="button_width">16dp</dimen>
 <dimen name="button_height">16dp</dimen>
 <dimen name="button_width">26dp</dimen>
 <dimen name="button_height">26dp</dimen>
 <dimen name="button_width">36dp</dimen>
 <dimen name="button_height">66dp</dimen>
android:layout_width="@+dimen\button_width"
android:layout_height="@+dimen\button_height"