我有一个可以在不同类型的Android设备上运行的应用程序项目: - 小装置:示例三星王牌 正常设备:三星galaxi s3 -tablet 10''
我的布局很复杂,使用match_parent和“dp”是不够的。我读过:http://developer.android.com/guide/practices/screens_support.html但我并不了解所有内容。
我是否必须创建更多的XML,res/layout-sw720dp/main_activity.xml
文件夹ow我必须使用不同的限定符吗?它究竟是如何运作的?
答案 0 :(得分:2)
对于不同的屏幕尺寸,以下是应用程序中的资源目录列表,它为不同的屏幕尺寸提供不同的布局设计。
res/layout/my_layout.xml // layout for normal screen size ("default")
res/layout-small/my_layout.xml // layout for small screen size
res/layout-large/my_layout.xml // layout for large screen size
res/layout-xlarge/my_layout.xml // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation
Manifest中的以下代码支持所有dpis。
<supports-screens android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true" />
答案 1 :(得分:0)
Kindly Use This qualifier for your Android Project with compatible screen size.
Resource Screen Size
layout-small <3 inch
layout-normal 3-4 inch
layout-large >4 inch<7.1
layout-xlarge 7.1 - 10.1 inch
如果您仍然遇到问题,请使用此教程Link
答案 2 :(得分:0)
如果你想为不同的设备创建1个应用程序,那么你必须使用sdk中定义的android不同的文件夹
例如
drawable-ldpi - to place the images for the low screen density devices(240*320)
drawable-mdpi - to place the images for the middle screen density devices(320*480)
drawable-hdpi - to place the images for the high screen density devices(480*800)
drawable-xhdpi - to place the images for the extra high screen density devices (above 480*800)
如果要为平板电脑创建应用程序 drawble-sw720dp - 放置平板电脑设备的图像(7“)
drawable用于放置图像。你必须为不同的可绘制文件夹
创建布局layout-ldpi - to place the layout for the low screen density devices(240*320)
layout-mdpi - to place the layout for the middle screen density devices(320*480)
layout-hdpi - to place the layout for the high screen density devices(480*800)
layout-xhdpi - to place the layout for the extra high screen density devices (above 480*800)
android会根据设备密度自动从应用程序中获取图像和布局。但为此你必须定义
<supports-screens android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true" />
以便为多屏分辨率设备开发应用程序。
答案 3 :(得分:0)
要开发支持每种密度和分辨率的应用程序,我们应牢记以下几点:
(1)将不同大小的图像(具有相同名称)放在4个不同的文件夹中:
ldpi:mdpi:hdpi:xhdpi = 3:4:6:8
(2)这些决议通常使用的尺寸为:
ldpi = 36 * 36 px mdpi = 48 * 48 px hdpi = 72 * 72 px xhdpi = 96 * 96 px
但您也可以使用所需尺寸的图像。(只是尝试按照不同尺寸的比例)。在所有这些图像中,将自动选择适合设备密度的图像。 / p>
(3)除此之外,您还可以以编程方式获取设备的密度并相应地设置布局,如下所示:
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
switch(displayMetrics.densityDpi){
case DisplayMetrics.DENSITY_LOW:
// layout for small sized devices.
break;
case DisplayMetrics.DENSITY_MEDIUM:
// layout for medium-sized devices.
break;
case DisplayMetrics.DENSITY_HIGH:
// layout for big-sized devices.
break;
}