相同屏幕密度density分辨率不同时
一般情况下不同密度对应不同分辨率
密度 ldpi mdpi hdpi xdpi xxdpi 屏幕密度 0.75 1 1.5 2 3像素密度值(density) 120 160 240 320 480(密度:480/160=3)代表分辨率 240*320 320*480 480*800 720*1280 1080*1920
但当屏幕密度density相同,但分辨率不同时,2个不同分辨率的设备会引用同一个资源文件(drawable-mdpi和values-mdpi)
解决办法:
1.先获取准确的屏幕分辨率
/*** 获取屏幕分辨率*/private void getScreenInfo() {int screenWidth = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getWidth(); // 屏幕宽int screenHeight = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getHeight(); // 屏幕高Log.e(TAG, "屏幕分辨率:screenWidth=" + screenWidth + "; screenHeight=" + screenHeight);// 获取像素密度和屏幕密度DisplayMetrics dm = new DisplayMetrics();dm = getResources().getDisplayMetrics();float density = dm.density; // 屏幕密度(像素比例:0.75/1.0/1.5/2.0)int densityDPI = dm.densityDpi; // 像素密度(每寸像素:120/160/240/320)float xdpi = dm.xdpi; //X轴方向的像素密度float ydpi = dm.ydpi; //Y轴方向的像素密度Log.e(TAG, "XY轴方向上的像素密度:xdpi=" + xdpi + "; ydpi=" + ydpi);Log.e(TAG, "像素密度和屏幕密度:density=" + density + "; densityDPI=" + densityDPI);screenWidth = dm.widthPixels; // 屏幕宽screenHeight = dm.heightPixels; // 屏幕高Log.e(TAG, "屏幕分辨率:screenWidth=" + screenWidth + "; screenHeight=" + screenHeight);// 获取屏幕密度(方法3)dm = new DisplayMetrics();((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getMetrics(dm);density = dm.density;densityDPI = dm.densityDpi;xdpi = dm.xdpi;ydpi = dm.ydpi;Log.e(TAG, "屏幕XY轴方向上的像素密度:xdpi=" + xdpi + "; ydpi=" + ydpi);Log.e(TAG, "屏幕像素密度和屏幕密度:density=" + density + "; densityDPI=" + densityDPI);int screenWidthDip = dm.widthPixels;int screenHeightDip = dm.heightPixels;Log.e(TAG, "屏幕XY轴方向上的像素密度:screenWidthDip=" + screenWidthDip + "; screenHeightDip=" + screenHeightDip);screenWidth = (int) (dm.widthPixels * density + 0.5f);screenHeight = (int) (dm.heightPixels * density + 0.5f);Log.e(TAG, "屏幕分辨率:screenWidth=" + screenWidth + "; screenHeight=" + screenHeight);}
然后加入values-1920x720、drawable-1280x720
最后一定一删掉mdpi,不然无效
相同屏幕密度density分辨率不同时相关推荐
- 屏幕适配,彻底理解dp,dpi,屏幕密度,分辨率之间的爱恨纠葛
android初学者都会对密度,分辨率,dp,dpi等等混淆,今天来好好捋一捋这剪不断理还乱的江湖关系! 废话不多说,直入主题. in:英寸inch,物理尺寸,1in =2.54厘米(cm).4.2寸 ...
- android 屏幕分辨率 屏幕密度,android分辨率,屏幕尺寸,屏幕密度关系
名词定义 分辨率 分辨率就是手机屏幕的像素点数,通常描述成屏幕的"宽×高",安卓手机屏幕常见的分辨率有480×800.720×1280.1080×1920等.720×1280表示此 ...
- 屏幕尺寸、密度,分辨率查询网站(手机、平板、显示器)
分享一个工具网站http://screensiz.es 用来查询主流手机.平板和显示器 的尺寸.屏幕密度以及分辨率的网站,有了这个网站我们就可以知道分辨率.密度,更好的适配了,福利[收藏]. /*** ...
- px,in,mm,pt,dp,dip,sp 之间的换算公式以及区别 屏幕密度
px :是屏幕的像素点 in :英寸 mm :毫米 pt :磅,1/72 英寸 dp :一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px dip :等 ...
- 安卓屏幕密度(Density)和分辨率的关系
density值表示每英寸有多少个显示点,与分辨率是两个不同的概念. 下面以480dip*800dip的WVGA(density=240dpi)为例,详细列出不同density下屏幕分辨率信息: de ...
- Android实战技巧之十:获得屏幕物理尺寸、密度及分辨率
大家帮忙喽! 博主参加2014博客之星活动,大家帮忙投票啦!猛击这里! 通过程序去了解硬件情况是一件十分有意思的事情.很早我就研究在WM6.5上获得屏幕物理尺寸,但一直没有成功.后来又想要在Andro ...
- 获取手机屏幕大小、密度、分辨率、状态栏、标题栏高度
在开发手机应用时,除了对API的掌握外,更重要的还是画面. 对于画面,屏幕分辨率又是很重要的一个因素. 由于手机屏幕尺寸各不相同,在画面布局时就需要考虑这个问题. Android可以设置为随着窗口大小 ...
- 分辨率,屏幕尺寸,屏幕密度,dp,px,sp
我们在做UI时候经常遇到这几个概念,但是就是不知道他们之间的关系,这篇文章将会解惑. 像素:显示图像的基本单元,单位px 分辨率:是纵横向上的像素点数,单位是px,比如1920*1080说的是纵向有1 ...
- 一文搞清楚安卓屏幕密度、像素密度、分辨率、安卓计量单位(dp)
一.先搞清楚几个概念: 1.屏幕分辨率(px): 分辨率是手机屏幕的像素点总数,一般用屏幕宽的像素点数乘以屏幕高的像素点数.分辨率越大屏幕越细腻,能够显示的细节就越多. 常用的分辨率有320x240. ...
最新文章
- Python:尝试对知乎网验证码进行处理
- 用单片机测量流体流速的_流量计是测量液体、气体流量仪表原理安装
- 熟练掌握Word2003中的突出显示功能
- Objective-C中的hasPrefix
- 青少年蓝桥杯_2020_steam考试_中级组_第五题
- linux redis -p,linux 安装redis
- AdapterView及其子类之三:基于ListView及ArrayAdapter实现列表
- 创建office一直转圈_Windows写字板出现广告条幅:推荐用户使用在线版Office
- windows dc linux,active-directory – Linux AD集成,使用Windows Server 2012 DC时无法登录
- python输入姓名_Python 用户输入用户名,进行验证
- 周期置换加密算法用c语言实现,古典密码实验报告.doc
- 2020年商用的5G,中兴通讯已经下了哪些先手棋?
- 训练集、验证集、测试集以及交验验证的理解
- c 语言奇数幻方代码,【C】——幻方算法(示例代码)
- 超级无敌小小迷你宝宝小可爱大仙女芊老婆~
- 科技云报道:乘风破浪的联通沃云,是一朵安全可控的国产云
- Apache端口占用解决办法
- 中国人请客吃饭的传统礼仪
- Qt中重定义的解决方案
- 本题计算人体的 BMI BMI =体重÷身高的平方