Android群英传--绘图机制与处理技巧(一)
来源:互联网 发布:java游戏移植官网 编辑:程序博客网 时间:2024/05/29 17:33
1. 基本概念:
屏幕大小:指的是屏幕对较线的长度,通常使用寸作为单位,
分辨率:指的是手机屏幕的像素点个数,如720x1080就是说宽有720个像素点,高有1080个像素点(竖直方向)
PPI/DPI:每英寸(1英寸=2.54厘米)像素,由对角线的像素点数(
DP/DIP:独立像素密度。Android规定使用mdpi(即像素密度值为160)作为屏幕的标准,在这个屏幕上,1PX = 1DP。
其他的分辨率的换算比例:
ldpi:mdpi:hdpi:xhdpi:xxhdpi = 3:4:6:8:12
ps:截取的友盟指数:2016年2月份(Android机型)
附常见单位总结:
in(英寸):长度单位。
mm(毫米):长度单位
cm(厘米):长度单位
pt(磅):长度单位,1pt = 1/72英寸,常用于排版
px(像素):屏幕上的像素点
dp/dip(独立像素密度):在每英寸160点像素点的显示器上,1dp = 1px
sp(放大像素):与dp类似,但是可以根据用户的字体大小首选项进行缩放。
2. 绘图分类:
Android常见的绘图有两种:View绘图和XML绘图。
View绘图中有三种常用的类:View类,SurfaceView类,GLSurfaceView类。
View类是主要的绘图类,重写其onDraw()方法来进行自定义的绘制。需要手动更新。
SurfaceView的UI就可以在一个独立的线程中进行绘制,又由于不会占用主线程资源,主要是用于更新频率较快的场景,如游戏画面的渲染等。
GLSurfaceView主要是用于绘制三维的视图,承载OpenGL ES的一个集合类。
XML绘图常用的标签有:Bitmap(位图),Shape(形状),Layer(图层),Selector(选择器)。
Bitmap(位图):可以直接把图片转换成Bitmap保存起来,便于调用。
<!--将drawable下的ic_launcher图片转换成bitmap--><?xml version="1.0" encoding="utf-8"?><bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/ic_launcher"></bitmap>
Shape(形状):可以自己定制图形,并方便的应用于background,src等属性上。
shape支持的属性:
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle(矩形) || line(线条) || oval(椭圆) || ring(圆)"> <!--当shape为rectangle时使用,可以设置矩形的四个角的半径,常用来画圆角矩形,radius属性会后边的单独的radius属性覆盖--> <corners android:radius="整形值" //四个角的半径 android:topLeftRadius="整形值" //左上角半径 android:topRightRadius="整形值" //右上角半径 android:bottomLeftRadius="整形值" //左下角半径 android:bottomRightRadius="整形值"/> //右下角半径 <gradient //渐变效果 android:type=" linear (线性)|| sweep(扫描状)|| radial(放射状)" //渐变类型 android:startColor="color" //渐变开始颜色 android:endColor="color" //渐变结束颜色 android:angle="整形" // /> <padding //内填充边距 android:left="整形值" //左边距 android:top="整形值" //上边距 android:right="整形值" // 右边距 android:bottom="整形值" /> // 下边距 <size //尺寸大小 android:width="整形值"//宽 android:height="整形值"//高 /> <solid //填充色 android:color="color" /> <stroke //边框 android:width="整形" android:color="color" /></shape>
<!--Shape的一个简单示例,效果如下图--><?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:type="sweep" android:startColor="#ff5da2ff" android:endColor="#805fbbff" android:angle="45"/> <padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp" /> <corners android:radius="8dp"/></shape>
Layer(图层):作用相当于Photoshop中的图层一样,实现图片的依次叠加。
<!--效果如下图--><?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/ic_launcher"/> <item android:drawable="@drawable/ic_launcher" android:left="20.0dp" android:top="20.0dp" android:bottom="20.0dp" android:right="20.0dip" /></layer-list>
Selector:选择器,可以实现组件在不同状态下的反馈,比如无焦点时,选中时,点击时的反馈效果。
<!--还有很多属性尚未列出--><?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="#80f7b4" /><!--默认时的背景--> <item android:state_pressed="false" android:drawable="#0780f2"/><!--未被点击的效果--> <item android:state_pressed="true" android:drawable="#03fd95"/><!--被点击时的效果--></selector>
- Android群英传--绘图机制与处理技巧(一)
- Android群英传--绘图机制与处理技巧(三)
- Android群英传之Android绘图机制与处理技巧
- Android群英传之Android绘图机制与处理技巧
- 《Android群英传》读书笔记6.Android绘图机制与处理技巧
- Android群英传学习-Android绘图机制与处理技巧
- Android群英传--绘图机制和处理技巧(二)
- Android群英传--绘图机制和处理技巧(四)
- 《Android群英传》读书笔记(5)第六章:Android绘图机制与处理技巧之一
- 《Android群英传》读书笔记(6)第六章:Android绘图机制与处理技巧之二
- 第六章Android绘图机制与处理技巧(Android群英传)
- 绘图机制与图片处理-Android群英传
- Android绘图机制与处理技巧(一)2D绘图技巧与XML绘图
- Android群英传笔记——第六章:Android绘图机制与处理技巧
- Android群英传读书笔记第六章(Android绘图机制与处理技巧)
- Android群英传知识点回顾——第六章:Android绘图机制与处理技巧
- Android群英传学习——第六章、Android绘图机制与处理技巧
- Android群英传--动画机制与技巧(一)
- wc命令
- Word排版时同时插入脚注和分栏的技巧总结
- 判断两个字符串是不是互为anagrams
- NGUI在5.3打包失败问题
- 从B树、B+树、B*树谈到R 树
- Android群英传--绘图机制与处理技巧(一)
- 同班同学20年后 身家15亿与月薪5000元的区别
- Linux kernel模块管理相关详解
- 用注解来省略findViewById
- Leagal or not(拓扑排序)
- iOS开发-- 开发细节(webView自适应高度)
- objc_getAssociatedObject, objc_setAssociatedObject通过类目加属性
- grep命令
- LeetCode(47)-Reverse Bits