Android中的多屏幕支持

我在一个项目上工作,我已经testing了一个。 它在那里正常工作,但我希望我的项目应该与所有屏幕尺寸兼容。 如何做到这一点? 我给了

<supports-screens android:smallScreens="true"/> <supports-screens android:normalScreens="true"/> <supports-screens android:largeScreens="true"/> <supports-screens android:anyDensity="true"/> <supports-screens android:resizeable="true" android:anyDensity="true" /> 

androidmainfest.xml中的参数

http://developer.android.com/guide/practices/screens_support.html

您必须为res文件夹 – > hdpi,mdpi,ldpi中的不同布局以及xhdpi(适用于Tablet)和large-hdpi或xlarge(适用于NXzoom)的大屏幕添加不同的文件夹。 还可以根据屏幕大小以不同的布局设置图像和文本大小…

对于过去的一天,我们用来创build不同的布局文件夹,如布局小,布局正常,布局大,布局xlarge为多个屏幕。 但这是一个很多工作。 所以有一种支持多屏幕的新方法。 详情如下。

支持多屏幕(所有手机和平板电脑):

对于移动设备 :我们通常使用不同值的文件夹进行不同dpi的处理,在文件夹内只有“dimens.xml”文件是不同的,因为当我们使用不同的设备时,只有维度被改变而不是所有的参数,例如颜色,string,风格等是相同的。 对于值文件夹:共有4个值文件夹。

 values (For mdpi devices) values-hdpi (For hdpi devices) values-xhdpi (For xhdpi devices) values-xxhdpi (For xxhdpi devices) 

(这里每个文件夹里只有维度文件是不同的,所以除了维度文件,所有其他文件只保留在值文件夹中。)

对于平板电脑 :我们必须使用sw(smallestWidth)概念。 例如,sw600dp表示只有当可用屏幕的最小尺寸至less为600dp时,系统才会使用这些资源。 屏幕方向改变时,设备的最小宽度不会改变。 一般来说,我们在res文件夹中为平板电脑创build两个文件夹

 layout-sw600dp (For 7″ to 9″ Screen) layout-sw720dp (For 10″ to above screen) 

最后一件事,任何设备(手机或平板电脑)的图像,你必须创build不同的可绘制文件夹:

 drawable-mdpi drawable-hdpi drawable-xhdpi drawable-xxhdpi 

我正在处理这种方式,它的工作正常…..如果有任何改进的方法,所以指导我

屏幕尺寸480×800

布局正常HDPI-480×800

绘制正常-HDPI-480×800

屏幕尺寸银河Nexus —虽然它的尺寸是1280×720,但实际上由于系统栏的尺寸(屏幕尺寸)不同

布局正常xhdpi

绘制正常,xhdpi

屏幕尺寸注5.3

布局正常xhdpi,1280×800的

绘制正常-xhdpi,1280×800的

屏幕尺寸S3

布局正常xhdpi,1280×720

绘制正常-xhdpi,1280×720

屏幕尺寸7英寸标签2支持操作系统版本3及以上—由于系统栏的尺寸(屏幕尺寸)不同,不会写入实际尺寸1026×600 bsz

布局大MDPI

提拉 – 大MDPI

屏幕尺寸7英寸标签p1000等支持小于3 —

布局大HDPI-1024×600

提拉 – 大HDPI-1024×600

屏幕尺寸1280×800选项卡10.1,10.2,注10.1等—你可以添加尺寸,如果你想其他明智的话

布局XLARGE,MDPI

提拉 – XLARGE,MDPI

上面所有的答案都有很好的自己的意思。很多时候,我们在情况下,在RelativeLayout嵌套的LinearLayout难以适应所有的屏幕考虑一些复杂的布局线Tile

上面的场景可以通过安装所有屏幕的android百分比支持库来解决。

在这里演示

GitHub项目在这里

 <android.support.percent.PercentRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/fifty_huntv" android:background="#ff7acfff" android:text="20% - 50%" android:textColor="@android:color/white" android:layout_width="0dp" android:layout_height="0dp" app:layout_heightPercent="20%" app:layout_widthPercent="50%" /> <TextView android:layout_toRightOf="@id/fifty_huntv" android:background="#ffff5566" android:text="80%-50%" android:layout_width="0dp" android:layout_height="0dp" app:layout_heightPercent="80%" app:layout_widthPercent="50%" /> </android.support.percent.PercentRelativeLayout> 

演示的简单例子

希望有人发现它有用:-)。