Android 支持不同的屏幕大小
我有一个可以在不同类型的android设备上运行的应用程序项目: -小型设备:例如三星ace -普通设备:三星galaxi s3 -第10页“ 我的布局很复杂,使用match_parent和“dp”是不够的。我读过:但我并不完全理解Android 支持不同的屏幕大小,android,Android,我有一个可以在不同类型的android设备上运行的应用程序项目: -小型设备:例如三星ace -普通设备:三星galaxi s3 -第10页“ 我的布局很复杂,使用match_parent和“dp”是不够的。我读过:但我并不完全理解 我是否需要在文件夹中创建更多的XML,比如说,res/layout-sw720dp/main_activity.XML我是否需要使用不同的限定符?它到底是如何工作的?对于不同的屏幕大小,以下是应用程序中的资源目录列表,该应用程序为不同的屏幕大小提供不同的布局设计 r
我是否需要在文件夹中创建更多的XML,比如说,
res/layout-sw720dp/main_activity.XML
我是否需要使用不同的限定符?它到底是如何工作的?对于不同的屏幕大小,以下是应用程序中的资源目录列表,该应用程序为不同的屏幕大小提供不同的布局设计
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
清单中的以下代码支持所有DPI
<supports-screens android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true" />
请将此限定符用于屏幕大小兼容的Android项目。
资源屏幕大小
布局小4英寸如果你想为不同的设备创建一个应用程序,那么你必须使用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用于放置图像。您必须为不同的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" />
因此,为多屏幕分辨率设备开发应用程序。要开发支持每种密度和分辨率的应用程序,我们应记住以下几点:
(1) 将不同大小的图像(同名)按以下比例放入4个不同文件夹:
ldpi:mdpi:hdpi:xhdpi=3:4:6:8
(2) 这些分辨率常用的尺寸为:
ldpi=36*36像素mdpi=48*48像素hdpi=72*72像素xhdpi=96*96像素
但您也可以使用所需的图像大小(也可以尝试按照不同大小的比例)。在所有这些图像中,将自动拾取适合设备密度的图像
(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;
}
请看这里。[支持多屏幕大小][1]。这对我也很有帮助。[1]:我想为不同的手机和表格投影我的应用程序。为此,您必须为drawble-sw720dp创建文件夹,用于图像,为layout-sw720dp创建文件夹。
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;
}