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
- 【Android】屏幕适配
- android屏幕适配
- android屏幕适配
- android 屏幕适配
- Android屏幕适配
- Android屏幕适配
- Android屏幕适配
- Android屏幕适配
- android 屏幕适配
- Android屏幕适配
- Android屏幕适配
- Android 屏幕适配
- android屏幕适配
- Android屏幕适配
- Android屏幕适配
- Android 屏幕适配
- android屏幕适配
- Android屏幕适配
- vs2013+Qt5.5.1+opencv2.4.11配置
- Java day04 类 封装
- ios编译打包发布流程
- objective-c感悟(四)class、catagory、class extension、optional
- HBase(0.96以上版本)过滤器Filter详解及实例代码
- Android屏幕适配
- hadoop一些让人崩溃的错误
- 在Arduino平台点亮LED灯实验
- leetcode 237. Delete Node in a Linked List
- 含开始时间,截止时间的规则缓存方案--- 类似时间轮理念,连续变片段化
- DSS分发压力实验
- AES加密算法
- maven未设置HTTP代理报错
- 链表回文——《编程之法》课后题答案