Android多分辨率适配(dp、px、sp互转),图片分辨率对应手机分辨率
> 手机 主流的屏幕分辨率 Android
Android手机目前常见的分辨率- http://blog.csdn.net/angle41/article/details/52116966
iOS屏幕尺寸和分辨率了解- http://blog.csdn.net/gu_jin_xiao/article/details/50374763
-- 目前最主流的手机屏幕是5.5寸,分辨率1920x1080,不过现在小屏手机也开始流了,小屏手机主要指5寸屏幕,1920x1080分辨率。
480*800,1280×720,1920×1080;
VGA 640×480 当年的iphone3;
WVGA 800×480 当前的低端安卓机;
1280×800 三星的note1note2;
WXGA 1280×768 这两个是当前安卓机中低端常用的分辨率,也就是720P;
1920×1080这个就是1080p的安卓机主流屏幕分辨率;
而有一些高端的安卓机,用2K的分辨率分辨率会更高;
宽 * 高 = {480 * 800 576 * 1024 720 * 1280 900 * 1440 900 * 1600 1080 * 1920};
注:取自最新版本夜神和腾讯手游模拟器。
> 图片分辨率对应手机分辨率
— 添加图片报错Error:Java.util.concurrent.ExecutionException: com.Android.ide.common.process.ProcessException:
在gradle的android{ ... } 中加入这两句就可以了
android {
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
}
— 手机App图片的分辨率对应手机分辨率
ldpi:240x320
mdpi:320x480
hdpi:480x800、480x854 ,640-360
xhdpi:至少960*720 ,1280-720
xxhdpi:1280×720 ,1920-1080
-dpi范围 密度 手机分辨率
0dpi ~ 120dpi ldpi 240 x 320
120dpi ~ 160dpi mdpi 320 x 480
160dpi ~ 240dpi hdpi 480 x 800
240dpi ~ 320dpi xhdpi 720 x 1280
320dpi ~ 480dpi xxhdpi 1080 x 1920
480dpi ~ 640dpi xxxhdpi 2560x1440
— App Logo尺寸:
密度 | 建议尺寸 |
mipmap-mdpi | 48*48 |
mipmap-hdpi | 72*72 |
mipmap-xhdpi | 96*96 |
mipmap-xxhdpi | 144*144 |
mipmap-xxxhdpi | 192*192 |
> 多分辨率适配,适配手机和平板
适配手机和平板的实现?? 巧用Fragment, 适配手机和平板两种屏幕??
Android手机平板两不误,使用Fragment实现兼容手机和平板的程序- http://blog.csdn.net/guolin_blog/article/details/8744943
使用Fragment适配平板与手机- http://www.jianshu.com/p/b1497e95fc65#
Android屏幕适配全攻略(最权威的官方适配指导)- http://blog.csdn.net/jdsjlzx/article/details/45891551
Android多分辨率适配框架 ( 1 )-- http://blog.csdn.net/lfdfhl/article/details/52735103
Android多分辨率适配框架 ( 2 )-- http://blog.csdn.net/lfdfhl/article/details/52877866
Android多分辨率适配框架使用指南-- http://blog.csdn.net/lfdfhl/article/details/53046113
Android屏幕适配- http://blog.csdn.net/q4878802/article/details/50352418
-- 对于该框架的理解和使用,有以下几个要点:
1.切图存放于drawable-nodpi;
2.抛开系统的dpi并且摒弃dp和sp,统一使用px作为尺寸单位;
3.按照高分辨率(如1920*1080)切图和布局;
4.在代码中等比例缩放每个View;
目前,xxhdpi分辨率的手机占了主流,所以在该框架中采用了drawable-xxhdpi的切图。倘若以后xxxhdpi分辨率的手机占了主导地位,那么就请UI设计师按照该
分辨率切图,我们将其放在drawable-xxxhdpi中,再修改BASE_SCREEN_WIDTH_FLOAT即可。
> dp和sp均与设备的dpi有关
在布局的过程中,请注意一个问题:不再使用dp、sp作为大小单位,而是统一使用px。为什么要这么做呢?
缩放比例的确定是基于屏幕的分辨率而确定的。 屏幕的分辨率均是采用px作为单位的,所以在布局时亦采用px从而保证缩放比例的一致和准确。
不同设备的dpi值不一样,所以在不同的设备上同一个dp和sp所对应的px值是不尽相同的。如果采用dp和sp作为尺寸的单位,那么在缩放时会产生较大的偏差.
-- Android开发之单位转换,dp、px、sp
/**
* dp转px
* @param dp
* @return
*/
public static int dip2px(int dp)
{
float density = getContext().getResources().getDisplayMetrics().density;
return (int) (dp*density+0.5);
}
/** px转换dip */
public static int px2dip(int px) {
final float scale = getContext().getResources().getDisplayMetrics().density;
return (int) (px / scale + 0.5f);
}
/** px转换sp */
public static int px2sp(int pxValue) {
final float fontScale = getContext().getResources().getDisplayMetrics().scaledDensity;
return (int) (pxValue / fontScale + 0.5f);
}
/** sp转换px */
public static int sp2px(int spValue) {
final float fontScale = getContext().getResources().getDisplayMetrics().scaledDensity;
return (int) (spValue * fontScale + 0.5f);
}
更多相关文章
- android中获取设备的型号和手机厂商
- android手机游戏之绘图
- 现在跨平台开发(手机平台,主要是Android、iOS以及WP)工具或者技术都
- 在Linux下adb连接不上android手机的终极解决方案
- 如何在代码里打开Android手机通知状态栏
- Flutter学习笔记 按返回键直接回到桌面,不退出APP
- SONY 系列手机 Android(安卓)5.1 系统 Root 方法
- Mac系统下利用ADB命令连接android手机并进行文件操作
- Java乔晓松-android中获取手机视频的缩略图