目錄
從0到1Android自定義View(一) 零散基礎(chǔ)知識.png
一胆筒、Android 坐標(biāo)系
1仰挣、Android 屏幕坐標(biāo)
數(shù)學(xué)中常見的坐標(biāo)系與 Android 系統(tǒng)上 View 的坐標(biāo)系是有點(diǎn)差別的,Android 設(shè)備中,屏幕的左上角為坐標(biāo)原點(diǎn),向右為 x 軸增大方向酪呻,向下為 y 軸增大方向。
Android坐標(biāo)系與數(shù)學(xué)坐標(biāo)系的區(qū)別.png
2盐须、View 的坐標(biāo)
View 的坐標(biāo)是相對父容器而言的
getTop();//獲取子View左上角距父View頂部的距離
getLeft();//獲取子View左上角距父View左側(cè)的距離
getBottom();//獲取子View右下角距父View頂部的距離
getRight();//獲取子View右下角距父View左側(cè)的距離
其中的源代碼:
/*** Top position of this view relative to its parent.
* ?相對應(yīng)父控件的top位置玩荠,單位為像素,即頭部到父控件的距離
* @returnThe top of this view, in pixels.
*/
@ViewDebug.CapturedViewProperty
public final int getTop(){
? ? ? return mTop;?
}
View坐標(biāo)系.png
3、MotionEvent中 get 和 getRaw 的區(qū)別
event.getX();//觸摸點(diǎn)相對于其所在組件坐標(biāo)系的坐標(biāo)
event.getY();
event.getRawX();//觸摸點(diǎn)相對于屏幕默認(rèn)坐標(biāo)系的坐標(biāo)
event.getRawY();
getY和getRawY.jpg
二阶冈、Android 中的角度與弧度
Android 自定義 View 中屉凯,經(jīng)常會用到一些角度弧度的計算,還有一些數(shù)學(xué)函數(shù)的應(yīng)用眼溶,因此,Android 中的角度和弧度我們也需要了解晓勇。
1堂飞、角度與弧度的定義
角度:兩條射線從圓心向圓周射出,形成一個夾角和夾角正對的一段弧绑咱。當(dāng)這段弧長正好等于圓周長的360分之一時绰筛,兩條射線的夾角的大小為1度.
弧度:兩條射線從圓心向圓周射出,形成一個夾角和夾角正對的一段弧描融。當(dāng)這段弧長正好等于圓的半徑時铝噩,兩條射線的夾角大小為1弧度.
2、角度和弧度的換算關(guān)系
圓一周對應(yīng)的角度為360度(角度)窿克,對應(yīng)的弧度為2π弧度骏庸。
故得等價關(guān)系:360(角度) = 2π(弧度) ==> 180(角度) = π(弧度)
得出公式:
一角度=π/180弧度
一弧度= 180/π角度
注意:
在常見的數(shù)學(xué)坐標(biāo)系中角度增大方向為逆時針方向
在默認(rèn)的屏幕坐標(biāo)系中角度增大方向為順時針方向
角度增大的方向.png
三、顏色
1年叮、Java 中定義顏色
xml 定義顏色相信剛接觸 Android 的都基本會用的具被,所以這里就介紹下 Java 中定義顏色,畢竟顏色在自定義 View 中也是必不可少的只损。
intcolor = Color.BLACK;//黑色intcolor = Color.argb(127,255,0,0);//半透明紅色intcolor? = Color.parseColor("#ffffff");//白色
2一姿、透明度
透明度也是必不可少的,透明度分為 256 階(0-255)跃惫,計算機(jī)上用 16 進(jìn)制表示為(00-ff)叮叹。透明就是 0 階,不透明就是25 5階,如果 50% 明就是 127 階(256 的一半當(dāng)然是 128爆存,但因為是從 0 開始蛉顽,所以實(shí)際上是127 )。
透明度 和 不透明度 是兩個概念终蒂, 它們加起來是 1蜂林,或者 100%
ARGB 中的透明度alpha,表示的是不透明度拇泣。
透明度參照表.png
注:非原創(chuàng)噪叙,不裝逼,不虛假霉翔。