在项目中我主要负责界面的优化工作,从中也学到了很多,总结一下经验,希望对android 开发的童鞋们有所帮助,其中我们需要对不同分辨率的手机和不同分辨率的平板做很多界面上的工作,这就需要判断你ddms里的设备是哪个分辨率的手机或平板从而加载不同的layout布局或资源文件,下面就是一个判断平板和手机的方法,文档里我会附上傻瓜式的解释。
得到屏幕分辨率:
public static int getScreenType(Context context) {
//得到屏幕的尺寸
DisplayMetrics metrics = new DisplayMetrics();
//WindowManager :应用用来和窗口交互的接口
WindowManager wm = (WindowManager) context.getSystemService("window");
if (wm == null) {
Log.e(TAG, "Get WindowManager error!");
return ControlConstants.SCREEN_TYPE_OTHER;//常量0,代表其他的屏幕
}
wm.getDefaultDisplay().getMetrics(metrics);
//这段LOG用来打印出当前屏幕的尺寸:宽和高的像素值
Log.d(TAG, "dm.widthPixels = " + metrics.widthPixels
+ " dm.heightPixels = " + metrics.heightPixels);
//先解释:横屏的S10屏幕的宽度像素值: WIDTHPIXELS_H_S10 = 1920;
横屏的S10屏幕的高度像素值 HEIGHTPIXELS_H_S10 = 1128;
竖屏的S10屏幕的宽度像素值WIDTHPIXELS_V_S10 = 1200;
竖屏的S10屏幕的高度像素值 HEIGHTPIXELS_V_S10 = 1848;
横屏的S7屏幕的宽度像素值 WIDTHPIXELS_H_S7 = 800;
横屏的S7屏幕的高度像素值HEIGHTPIXELS_H_S7 = 1216;
竖屏的S7屏幕的宽度像素值 WIDTHPIXELS_V_S7 = 1280;
竖屏的S7屏幕的高度像素值HEIGHTPIXELS_V_S7 = 736;
如果当前屏幕尺寸的宽高大于等于这些值(横屏和竖屏为或的关系)则可以判断就是S10
if (metrics.widthPixels >= WIDTHPIXELS_H_S10
&& metrics.heightPixels >= HEIGHTPIXELS_H_S10
|| metrics.widthPixels >= WIDTHPIXELS_V_S10
&& metrics.heightPixels >= HEIGHTPIXELS_V_S10) {
return ControlConstants.SCREEN_TYPE_S10;
}
方法同上
if (metrics.widthPixels >= WIDTHPIXELS_H_S7
&& metrics.heightPixels >= HEIGHTPIXELS_H_S7
|| metrics.widthPixels >= WIDTHPIXELS_V_S7
&& metrics.heightPixels >= HEIGHTPIXELS_V_S7) {
return ControlConstants.SCREEN_TYPE_S7;
}
return ControlConstants.SCREEN_TYPE_OTHER;
}
这段方法得到的int值作为MyAppContext extends Application中的一个私有变量
分享到:
相关推荐
### 知识点生成 #### 标题:判断当前设备是Pad还是手机 ...综上所述,通过判断是否支持电话服务是一种简单且有效的方法来区分平板和手机,但并非绝对可靠。在实际应用开发中,还需要结合其他因素进行综合判断。
在“安卓登录注册相关-唯一标识一台Android设备手机平板手表电视.rar”这个压缩包中,可能包含了用于获取Android设备独特标识的代码示例,这对于我们理解设备标识的获取方法非常有帮助。下面,我们将深入探讨Android...
5. **确认安装成功**:设备管理器中应能看到已安装的设备,设备类型显示为Android设备或相应的手机型号。 在使用过程中,可能会遇到一些问题,如驱动不识别、无法连接等。解决这些问题通常涉及以下策略: - 检查...
方法一 代码如下:public static boolean isTablet(Context context) { return (context.getResources().get...通过计算设备尺寸大小的方法来判断是手机还是平板: 代码如下:/** * 判断是否为平板 * * @re
综上所述,这个压缩包提供的源码示例旨在帮助开发者理解并实现Android的多分辨率适配,区分手机和平板设备,以及如何等比例缩放图片。掌握这些技术,将有助于提高应用的用户体验,使其能在各种设备上呈现出良好的...
要区分设备是手机还是平板,可以依据屏幕尺寸和密度。通常,平板具有更大的屏幕尺寸和更高密度。以下是一些常见的判断方法: - 使用`android.util.DisplayMetrics`类获取设备的宽度和高度像素,若超过600dp(大约7...
首先,我们要了解Android设备的屏幕尺寸和像素密度差异。Android系统将屏幕分为小(small)、正常(normal)、大(large)和超大(xlarge)四种尺寸类别,以及ldpi(低密度)、mdpi(中密度)、hdpi(高密度)、...
这个"Android高级应用源码-android多分辨率适配 ,判断平板还是手机,等比例缩小图片.zip"压缩包包含了实现这些功能的相关代码示例。下面我们将深入探讨其中涉及的知识点。 1. **多分辨率适配**: Android设备拥有...
本压缩包文件提供了一套解决方案,包括如何区分设备是平板还是手机,以及如何等比例缩小图片,以适应不同尺寸的屏幕。下面将详细阐述这些知识点。 1. **多分辨率适配**: - **资源目录结构**:Android支持不同的...
在Android应用开发中,平板电脑应用的开发与手机应用有所不同,主要体现在屏幕尺寸、分辨率和用户交互模式的差异。开发者需要考虑如何适配不同尺寸的屏幕,提供更丰富的用户体验,以及利用更大的显示空间来优化布局...
在Android应用开发中,面对不同尺寸的手机和平板设备,实现统一布局是一项重要的挑战。传统的做法是为每种设备设计单独的布局方案,但这不仅增加了开发成本,还使得维护变得困难。本文提出了一种统一布局的方法,...
在处理Android设备的唯一标识时,需要注意以下几点: - 遵守GDPR(欧洲通用数据保护条例)和其他地区的隐私法规,不要滥用标识符。 - 考虑到标识符可能变化的情况,如系统更新或设备重置。 - 获取敏感信息时,确保...
本文将详细介绍如何通过UA字符串来分辨Android设备究竟是手机还是平板。 首先,最直观的标准是查看UA字符串中是否包含"Mobile"这个词。如果存在"Mobile",那么通常表明这是台手机;相反,如果UA中没有"Mobile",则...
首先,我们要区分两种重启方式:重启系统设备(手机或平板电脑)和重启单个应用程序。这两种方法有不同的实现途径。 一、重启系统设备 1. 用户界面:用户可以通过长按电源键,然后选择“重启”选项来重启设备。这是...
首先,我们要了解Android设备的几种常见的唯一标识符: 1. **IMEI**:国际移动设备识别码,是手机硬件的全球唯一标识,主要用于GSM和WCDMA网络。通过`TelephonyManager`的`getDeviceId()`方法可以获取。但请注意,...
首先,我们来讨论如何判断设备是平板还是手机。在Android中,我们可以利用`DisplayMetrics`类来获取屏幕的相关信息,如宽度和高度像素、密度等。通过比较这些参数与预设阈值,可以区分设备类型。例如,如果屏幕宽度...
IMEI是一个15位数字的序列号,每个具有移动通信功能的设备都有一个独特的IMEI,用于区分全球范围内的设备。它主要用于追踪和识别手机,例如在手机丢失或被盗时帮助找回。IMEI分为两部分:TAC(Type Allocation Code...
- **硬件设备对比**:手机和平板等移动设备相比传统PC有着更为紧凑的屏幕尺寸和触摸屏操作的特点,这要求应用程序必须适应小屏幕环境,提供直观的触控操作。 - **操作方式对比**:由于移动设备的操作方式主要是...