View坐標(biāo)系
簡(jiǎn)介
子View
的坐標(biāo)系統(tǒng)是相對(duì)于父View
而言的.
示意圖
代碼
getTop(); //獲取子View左上角距父View頂部的距離
getLeft(); //獲取子View左上角距父View左側(cè)的距離
getBottom(); //獲取子View右下角距父View頂部的距離
getRight(); //獲取子View右下角距父View左側(cè)的距離
Event坐標(biāo)系
示意圖
代碼
event.getX(); //觸摸點(diǎn)相對(duì)于其所在組件坐標(biāo)系的坐標(biāo)
event.getY();
event.getRawX(); //觸摸點(diǎn)相對(duì)于屏幕默認(rèn)坐標(biāo)系的坐標(biāo)
event.getRawY();
角度與弧度
角度->弧度:
math rad = deg \times \frac {\pi } {180}
弧度->角度:
math deg = rad \times \frac {180} {\pi}
角度增大時(shí)的方向:
- 在常見的數(shù)學(xué)坐標(biāo)系中角度增大方向?yàn)槟鏁r(shí)針说敏,
- 在默認(rèn)的屏幕坐標(biāo)系中角度增大方向?yàn)轫槙r(shí)針辕狰。
顏色
顏色模式
顏色模式 | 備注 |
---|---|
ARGB8888 | 四通道高精度(32位) |
ARGB4444 | 四通道低精度(16位) |
RGB565 | 屏幕默認(rèn)模式(16位) |
Alpha8 | 僅有透明通道(8位) |
創(chuàng)建顏色的幾種方式
方式一
int color = Color.GRAY; //灰色
方式二
int color = Color.argb(127, 255, 0, 0); //半透明紅色
方式三
int color = 0xaaff0000; //帶有透明度的紅色
xml文件中定義顏色
xml定義
- 在 res/values/color.xml 文件中如下定義:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="red">#ff0000</color>
<color name="green">#00ff00</color>
</resources>
使用
- 引用 res/values/color.xml 文件中定義的顏色:
int color = getResources().getColor(R.color.mycolor);
關(guān)于透明通道的算法
因?yàn)槲覀兊娘@示屏是沒法透明的,因此最終顯示在屏幕上的顏色里可以認(rèn)為沒有 Alpha通道 句喜。 Alpha通道 主要在兩個(gè)圖像混合的時(shí)候生效很泊。
默認(rèn)情況下褥影,當(dāng)一個(gè)顏色繪制到Canvas
上時(shí)的混合模式是這樣計(jì)算的:
(RGB通道) 最終顏色 = 繪制的顏色 + (1 - 繪制顏色的透明度) × Canvas上的原有顏色