按照文档规范,我在drawable-ldpi,drawable-hdpi,drawable-mdpi,drawable-xhdpi分别放置了相应的图片,举例来说,一个铺满屏幕的图片
drawable-ldpi,240*320
drawable-hdpi,320*480
drawable-mdpi,480*800
drawable-xhdpi,720*1280今天发现一个奇怪的问题,图片在三星GALAXY S3上,显示正常,调用的是drawable-xhdpi,720*1280的图片,但是在GALAXY NOTE上,却显示的图片很小,GALAXY NOTE的分辨率是800*1280的,我原本想,再不济,顶多是宽度不够吧,怎么也要选高精度的xhdpi图片啊,为什么却调用了默认的mdpi图片呢?请高手赐教!
drawable-ldpi,240*320
drawable-hdpi,320*480
drawable-mdpi,480*800
drawable-xhdpi,720*1280今天发现一个奇怪的问题,图片在三星GALAXY S3上,显示正常,调用的是drawable-xhdpi,720*1280的图片,但是在GALAXY NOTE上,却显示的图片很小,GALAXY NOTE的分辨率是800*1280的,我原本想,再不济,顶多是宽度不够吧,怎么也要选高精度的xhdpi图片啊,为什么却调用了默认的mdpi图片呢?请高手赐教!
解决方案 »
- Android MediaRecorder 录音setAudioSource failed
- android访问服务器,服务器如何取值?
- android tabhost 的问题
- [2012-07-12 15:35:33 - DeviceMonitor] Adb connection Error:远程主机强迫关闭了一个现有的连接。
- 怎样改变android界面的外观?
- 自定义进度条相关问题
- 有既支持Iphone又支持android开发的工具软件吗
- 开发一个android富文本编辑器
- 请问Android如何释放ByteBuffer.allocateDirect申请的内存
- 使用ArcGIS地图,布局里引入com.esri.android.map.MapView 异常,如何解决?
- 安卓弹出对话框问题
- 搭建安卓开发环境出了点问题,特来请教
下面这些知识点,应该能帮到你。
dpi:“dot per inch”的缩写,每英寸像素数。
drawable-ldpi的dpi为120
drawable-mdpi的dpi为160
drawable-hdpi的dpi为240
drawable-xhdpi的dpi为320
另外还得知道一个‘屏幕密度’的概念,呃,这个词语是我自己杜撰的,其实就是知道android的一个规定:dpi为160的屏幕密度为1,其他照着算就行了。 DisplayMetrics metrics = null;
metrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
float density = metrics.density;
这段代码能获取设备屏幕分辨率数据,metrics.density就是屏幕密度,当密度为1,则表示设备每英寸显示160个物理像素,则会取drawable-mdpi下的图片,为1.5,取drawable-hdpi,为2,取drawable-xhdpi,为0.75,取drawable-ldpi,lz先看看手机屏幕的密度吧(800*1280,应该是2),这样就能确定到底是取的哪个目录下的图片,再进一步确定问题到底出现在哪。
另外,这样定制图片资源,不上不下的很蛋疼的,android的分辨率,就算是缩放也无法同时满足宽和高。
其实分辨率要求不高的话,只准备一套大图片放在drawable-hdpi或者drawable-xhdpi下就行了,android会根据不同的分辨率进行缩放的,之所以要大图,是因为能保证只缩小而不放大,保证图片不会变得模糊。
而分辨率要求很高,则可以这样一个一个定义,其实更蛋疼- -||
drawabledrawable-ldpidrawable-mdpidrawable-hdpidrawable-xhdpidrawable-nodpidrawable-nodpi-1024×600drawable-nodpi-1280×800drawable-nodpi-800×480
建议楼主先取出自己那个机器的density 是多少
然后再类似这样写 drawable-hdpi-1280×800 可能是xhdpi 具体看你的密度
为note 指定一个drawable包;