天天看點

自定義View之基礎概念(二)

1. MotionEvent中 get 和 getRaw 的差別

event.getX();       //觸摸點相對于其所在元件坐标系的坐标
event.getY();

event.getRawX();    //觸摸點相對于螢幕預設坐标系的坐标
event.getRawY();
           

2. 角度和弧度的換算關系

圓一周對應的角度為360度(角度),對應的弧度為2π弧度。

故得等價關系:360(角度) = 2π(弧度) ==> 180(角度) = π(弧度)
           

3. Math常用方法

Math.PI 記錄的圓周率 PI = 3.141592653589793;
Math.E 記錄e的常量 E = 2.718281828459045;
Math.abs() 求絕對值
Math.sin() 正弦函數
Math.asin()反正弦函數
Math.cos()餘弦函數 
Math.acos()反餘弦函數 
Math.tan()正切函數 
Math.atan()反正切函數 
Math.toDegrees()弧度轉換為角度 
Math.toRadians()角度轉化為弧度 
Math.sqrt(x)平方根 
Math.pow(x,y):x的y次方
Math.round() 四舍五入 
Math.random()傳回(0,1)之間的一個随機數
Math.exp()求e的任意次方 
Math.log10 求以10為底的對數 
Math.log()求自然對數 
Math.rint() 求距離某數最近的整數(可能比某數大,也可能比它小) 
           

4. Canvas常用方法

自定義View之基礎概念(二)

5. Paint介紹

STROKE                //描邊
FILL                  //填充
FILL_AND_STROKE       //描邊加填充
mPaint.setStyle(Paint.Style.FILL);  //設定畫筆模式為填充 
setColor(int color)  //設定畫筆顔色
setStrokeWidth(float width)  //畫筆樣式為空心時,設定空心畫筆的寬度
setShader(Shader shader) //設定畫筆顔色過濾器
setTextSize(float textSize) //設定字型大小
measureText(String text, int start, int end) //測量字型的寬度
//設定陰影效果
setShadowLayer(float radius, float dx, float dy, int shadowColor)
setAntiAlias(boolean aa)  //是否抗鋸齒
setTextAlign(Paint.Align align)  //設定文本對齊
           

6. Path常用方法

自定義View之基礎概念(二)

7. Path之貝塞爾曲線

一階曲線原理:

一階曲線是沒有控制點的,僅有兩個資料點(A 和 B),最終效果一個線段。方法為lineTo
           

二階曲線原理:

二階曲線由兩個資料點(A 和 C),一個控制點(B)來描述曲線狀态
方法為quadTo
           

三階曲線原理:

三階曲線由兩個資料點(A 和 D),兩個控制點(B 和 C)來描述曲線狀态,方法為cubicTo
           

8. Path的布爾運算有五種邏輯

自定義View之基礎概念(二)

9. PathMeasure介紹

PathMeasure是一個用來測量Path的類

自定義View之基礎概念(二)

getPosTan

這個方法是用于得到路徑上某一長度的位置以及該位置的正切值:

boolean getPosTan (float distance, float[] pos, float[] tan)

自定義View之基礎概念(二)

getMatrix

這個方法是用于得到路徑上某一長度的位置以及該位置的正切值的矩陣:

boolean getMatrix (float distance, Matrix matrix, int flags)

自定義View之基礎概念(二)

參考

GcsSloop的安卓自定義View教程目錄

10.聯系方式

QQ:1509815887
           

繼續閱讀