Android 自定義view 基礎(chǔ)篇(一)

目錄

從0到1Android自定義View(一) 零散基礎(chǔ)知識(shí).png

一、Android 坐標(biāo)系

1、Android 屏幕坐標(biāo)

數(shù)學(xué)中常見(jiàn)的坐標(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)是相對(duì)父容器而言的

getTop();//獲取子View左上角距父View頂部的距離

getLeft();//獲取子View左上角距父View左側(cè)的距離

getBottom();//獲取子View右下角距父View頂部的距離

getRight();//獲取子View右下角距父View左側(cè)的距離

其中的源代碼:

/*** Top position of this view relative to its parent.

* ?相對(duì)應(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)相對(duì)于其所在組件坐標(biāo)系的坐標(biāo)

event.getY();

event.getRawX();//觸摸點(diǎn)相對(duì)于屏幕默認(rèn)坐標(biāo)系的坐標(biāo)

event.getRawY();

getY和getRawY.jpg

二、Android 中的角度與弧度

Android 自定義 View 中,經(jīng)常會(huì)用到一些角度弧度的計(jì)算,還有一些數(shù)學(xué)函數(shù)的應(yīng)用,因此,Android 中的角度和弧度我們也需要了解。

1、角度與弧度的定義

角度:兩條射線從圓心向圓周射出,形成一個(gè)夾角和夾角正對(duì)的一段弧。當(dāng)這段弧長(zhǎng)正好等于圓周長(zhǎng)的360分之一時(shí),兩條射線的夾角的大小為1度.

弧度:兩條射線從圓心向圓周射出,形成一個(gè)夾角和夾角正對(duì)的一段弧。當(dāng)這段弧長(zhǎng)正好等于圓的半徑時(shí),兩條射線的夾角大小為1弧度.

2、角度和弧度的換算關(guān)系

圓一周對(duì)應(yīng)的角度為360度(角度),對(duì)應(yīng)的弧度為2π弧度。

故得等價(jià)關(guān)系:360(角度) = 2π(弧度) ==> 180(角度) = π(弧度)

得出公式:

一角度=π/180弧度

一弧度= 180/π角度

注意:

在常見(jiàn)的數(shù)學(xué)坐標(biāo)系中角度增大方向?yàn)槟鏁r(shí)針?lè)较?/p>

在默認(rèn)的屏幕坐標(biāo)系中角度增大方向?yàn)轫槙r(shí)針?lè)较?/p>

角度增大的方向.png

三、顏色

1、Java 中定義顏色

xml 定義顏色相信剛接觸 Android 的都基本會(huì)用的,所以這里就介紹下 Java 中定義顏色,畢竟顏色在自定義 View 中也是必不可少的。

intcolor = Color.BLACK;//黑色intcolor = Color.argb(127,255,0,0);//半透明紅色intcolor? = Color.parseColor("#ffffff");//白色

2、透明度

透明度也是必不可少的,透明度分為 256 階(0-255),計(jì)算機(jī)上用 16 進(jìn)制表示為(00-ff)。透明就是 0 階,不透明就是25 5階,如果 50% 明就是 127 階(256 的一半當(dāng)然是 128,但因?yàn)槭菑?0 開(kāi)始,所以實(shí)際上是127 )。

透明度 和 不透明度 是兩個(gè)概念, 它們加起來(lái)是 1,或者 100%

ARGB 中的透明度alpha,表示的是不透明度。

透明度參照表.png

注:非原創(chuàng),不裝逼,不虛假。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容