Android屏幕适配

来源:互联网 发布:sybase数据库使用 编辑:程序博客网 时间:2024/06/05 17:25

一:Bitmap的加载以及颜色意义:
加载进内存图片大小:图片像素值*每个像素的大小
16、256:表示的二进制(在二进制中4位最大值16 所以16色图占4 以为是8 所以是1/2位)(一位是8个二进制:其他的是计算所占的位数)
单色图:1个像素 表示1/8位
16色图1个像素 表示1/2位
256色图1个像素 表示1位
24位色图1个像素 表示3位(24位是3个8:所以是3位:一个是一个8位:一个8位可以用2位二进制表示:所以是#ff3300)
实例:在三级缓存中计算加载进内存中图片的大小方法:
LruCache的原理:它内部维护了一个LinkedHashMap和maxSize,并且提供了put和get图片的方法;每次put图片的时候,会计算当前缓存中所有图片的总大小,跟maxSize进行比较,如果大于maxSize,就将最早添加的图片删除,否则添加进来.

private LruCache

屏幕适配

注:320*480 480*800 720*1280 这些的单位都是px::::::;px就是像素:1px=1个像素点。
屏幕尺寸:指屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米。比如常见的屏幕尺寸有2.4、2.8、3.5、3.7、4.2、5.0、5.5、6.0等
屏幕分辨率:指在横纵向上的像素点数,单位是px,1px=1个像素点。一般以纵向像素*横向像素,如1960*1080。

1、图片适配

    图片的查找顺序从大到小:ldip 、drawable 、mdpi 、 hdpi 、xhdpi        一般图片查找:找自己文件夹,再往大的找,再往小的找        ldip 、mdpi 、drawable 、 hdpi 、xhdpi        注意:mdpi手机,先找自己,再找drawable,再往大的找    主流分辨率:480*800 1280*720,大图、高清图,都放一张,小图片就在480*800文件夹下放一套

2、尺寸适配

    px : 像素:    dp/dip : 密度,与像素无关    px = dp * 密度比dpi(系统方法获取也可以计算)    dpi : 开方(宽度像素平方+高度像素平方)/屏幕尺寸    320*480 : 102400 + 230400                 576 / 3.2                180    320*480 180dpi 做为基准线,1px = 1dp * 1    mdpi : 160px = 160dp * 1    ldpi : 120px = 160dp * 0.75    hdpi : 240px = 160dp * 1.5    xhdpi : 360px = 180dp * 2

所以在xml布局代码中写dp:可以有一个有效的在不同手机上的大小问题:缩放

    根据分辨率创建相应values文件夹,比如 values-1280x720 (大值在前)    dimens xml文件 <dimen name="harfWidth">160dp</dimen>

3、布局适配

    根据分辨率创建layout文件夹:比如layout-1280x720

4、代码适配

    Display display = getWindowManager().getDefaultDisplay();    int width = display.getWidth();    int height = display.getHeight();    tv1.setLayoutParams(new LayoutParams((int)(width*0.25), (int)(height*0.1)));    tv2.setLayoutParams(new LayoutParams((int)(width*0.5), (int)(height*0.1)));    tv3.setLayoutParams(new LayoutParams((int)(width*0.75), (int)(height*0.1)));    tv4.setLayoutParams(new LayoutParams((int)(width*1), (int)(height*0.1)));

5、权重适配(按比例非配屏幕尺寸)

    android:weightSum="4"实例:

0 0
原创粉丝点击