当前位置:首页 > 芯闻号 > 充电吧
[导读]现在android智能手机在市场上非常普遍,各式各样的款式,各种类型,各种屏幕大小不一,真的挺为用户感到高兴,但有部分人还是挺郁闷的,那就是程序猿,为什么这样说呢?现在的android程序猿工作量非常

现在android智能手机在市场上非常普遍,各式各样的款式,各种类型,各种屏幕大小不一,真的挺为用户感到高兴,但有部分人还是挺郁闷的,那就是程序猿,为什么这样说呢?现在的android程序猿工作量非常大,在哪方面体现呢?那就是对手机进行适配。什么是适配,那就是要将某个应用在不同屏幕上显示效果要一致或者是不能乱。

上面的是作为android开发工程师的感受,现进入正题:

要做到适配,那先了解主流的手机是哪些分辨率,比如480*800,720*1280等,那怎么样获取这些信息?下面是获取信息的代码:


          DisplayMetrics dm = new DisplayMetrics();  
          getWindowManager().getDefaultDisplay().getMetrics(dm);  
		  
		float density  = dm.density;      // 屏幕密度(像素比例:0.75/1.0/1.5/2.0)  
		int densityDPI = dm.densityDpi;     // 屏幕密度(每寸像素:120/160/240/320)  
		float xdpi = dm.xdpi;           
		float ydpi = dm.ydpi;  
		  
		Log.e("  Jeny", "xdpi=" + xdpi + "; ydpi=" + ydpi);  
		Log.e( "  Jeny", "density=" + density + "; densityDPI=" + densityDPI);  
		  
		int screenWidthDip = dm.widthPixels;        // 屏幕宽(dip,如:320dip)  
		int screenHeightDip = dm.heightPixels;      // 屏幕宽(dip,如:533dip)  
		  
		Log.e("  Jeny", "screenWidthDip=" + screenWidthDip + "; screenHeightDip=" + screenHeightDip);  
		  
		int screenWidth  = (int)(dm.widthPixels * density + 0.5f);      // 屏幕宽(px,如:480px)  
		int screenHeight = (int)(dm.heightPixels * density + 0.5f);     // 屏幕高(px,如:800px)  
		  
		Log.e("  Jeny", "screenWidth=" + screenWidth + "; screenHeight=" + screenHeight); 		
		
		Configuration config = getResources().getConfiguration();

        int  smallestScreenWidth = config.smallestScreenWidthDp;		// 屏幕最小宽
        
        Log.e("  Jeny", "smallestScreenWidth=" + smallestScreenWidth);


以上代码可以让你了解你用的手机上的信息,但最主要的还是int  smallestScreenWidth = config.smallestScreenWidthDp; 这句,获取屏幕最小宽,因为以下适配方案是需要根据该值来进行解说的:

在获取smallestScreenWidth值后,在资源文件中新增values-sw300dp、values-sw400dp类似的文件夹,values-sw300dp表示最小宽为300dp的手机会使用该文件夹下的资源;values-sw400dp表示最小宽为400dp的手机会使用该文件夹下的资源。这个是个人测试获取的结果,分享出来,希望能帮助android工程师们!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

为增进大家对显示器的认识,本文将对显示器的电路组成以及显示器的分辨率选择予以介绍。

关键字: 显示器 指数 分辨率

频谱分析仪是用于分析信号的频率成分和功率的电子设备。分辨率是频谱分析仪的一个重要指标,它决定了频谱分析仪能够分辨的信号细节和频谱特征。在频谱分析仪的使用过程中,分辨率受到多种因素的影响,这些因素包括信号频率、信号强度、分...

关键字: 频谱分析仪 信号 分辨率

2023年3月30日,鼎阳科技发布了SDS1000X HD系列高分辨率示波器,该系列具备12-bit高分辨率,最高带宽200MHz,存储深度可达100 Mpts, Sequence 模式下,波形捕获率最高达400 000...

关键字: 示波器 瞬态信号 分辨率

模拟数字转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模...

关键字: 模拟数字转换器 分辨率 转换误差

摘要:高速公路视频全程监控系统对于提高高速公路监管力度和服务水平具有很重要的作用,同时,监控系统中摄像机的选择对于发挥监控系统的作用举足轻重。文章在高速公路视频全程监控系统开发的基础上,提出了监控摄像机的焦距、分辨率等主...

关键字: 高速公路 视频监控 摄像机 镜头焦距 分辨率

随着全球多样化的发展,我们的生活也在不断变化着,包括我们接触的各种各样的电子产品,那么你一定不知道这些产品的一些组成,比如振动传感器。

关键字: 振动传感器 灵敏度 分辨率

在生活中,你可能接触过各种各样的电子产品,那么你可能并不知道它的一些组成部分,比如它可能含有的传感器,那么接下来让小编带领大家一起学习传感器。

关键字: 智能压力传感器 信噪比 分辨率

加拿大滑铁卢, May 25, 2021-- 机器视觉技术的全球领导者,Teledyne Technologies公司旗下的 Teledyne Imaging发布为广泛的机器视觉应用而打造的 Linea Lite 系列线...

关键字: 机器视觉技术 Linea Lite 分辨率

作为当前运用最为广泛的彩色液晶屏之一,5寸触摸屏运用包括车载显示、工业终端、手持终端、数码、智能家居、智能手机、通讯设备、仪器仪表、医疗等等,应用范围及其广阔。

关键字: 触摸屏 液晶屏 分辨率

本文将对微软 Surface Hub 最新消息予以介绍,如果你想对它的具体情况一探究竟,或者想要增进对它的认识,不妨请看以下内容哦。

关键字: 微软 surface 分辨率
关闭
关闭