麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統(tǒng) > Android > 正文

《Android群英傳》讀書筆記6.Android繪圖機(jī)制與處理技巧

2019-11-09 17:32:34
字體:
供稿:網(wǎng)友

1. 屏幕的尺寸信息

1.1. 屏幕參數(shù)

屏幕大小:指屏幕對(duì)角線的長度,例如4.7寸手機(jī)、5.5寸手機(jī)分辨率:指手機(jī)屏幕的像素點(diǎn)個(gè)數(shù),例如720×1280,指寬有720個(gè)像素點(diǎn),而高有1280個(gè)像素點(diǎn)PPI:每英寸像素(Pixels Per Inch)又被稱為DPI(Dots Per Inch),由對(duì)角線的像素點(diǎn)數(shù)除以屏幕的大小得到

1.2. 系統(tǒng)屏幕密度

系統(tǒng)定義了幾個(gè)標(biāo)準(zhǔn)的DPI值,作為手機(jī)的固定DPI

密度 ldpi mdpi hdpi xhdpi xxhdpi
密度值 120 160 240 320 480
分辨率 240×320 320×480 480×800 720×1280 1080×1920

注:此表僅供參考,如小米4c手機(jī),分辨率1920×1080,尺寸5英寸,屏幕像素密度441ppi。因在具體應(yīng)用中1dp = 3px,故密度為xxhdpi

1.3. 獨(dú)立像素密度dp

由于各種屏幕密度的不同,導(dǎo)致同樣像素大小的長度,在不同密度的屏幕上顯示長度不同 Android系統(tǒng)使用mdpi的屏幕作為標(biāo)準(zhǔn),在這個(gè)屏幕上1px = 1dp 例如同樣是100dp的長度,在mdpi中為100px,而在hdpi中為150px 在hdpi中1dp = 1.5px,在xhdpi中1dp = 2px,在xxhdpi中1dp = 3px

1.4. 單位轉(zhuǎn)換

可將dp、sp轉(zhuǎn)換為px的工具類保存到項(xiàng)目中

2. 2D繪圖基礎(chǔ)

系統(tǒng)通過提供的Canvas對(duì)象來提供繪圖方法,如drawPoint(點(diǎn))、drawLine(直線)、drawLines(多條直線)、drawRect(矩形)、drawRoundRect(圓角矩形)、drawCircle(圓)、drawVertices(多邊形)、drawArc(弧形或扇形)、drawOval(橢圓)、drawText(文本)、drawPosText(指定位置文本)、drawPath(路徑)等等,例

paint.setStyle(Paint.Style.STROKE);canvas.drawRect(left, top, right, bottom, paint);

3. Android xml繪圖

3.1. Bitmap

<?xml version="1.0" encoding="utf-8"?><bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/ic_launcher">

3.2. Shape

例子:通過漸變實(shí)現(xiàn)陰影效果

<?xml version="1.0" encoding="uft-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" // 默認(rèn)為rectangle android:shape="rectangle"> <corners // 當(dāng)shape="rectangle"時(shí)使用 // 半徑,會(huì)被topLeftRadius等單個(gè)半徑屬性覆蓋,默認(rèn)為1dp android:radius="8dp"/> <gradient // 漸變 android:startColor="#FF5DA2FF" android:endColor="#805FBBFF" android:angle="45"/> <padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp"/></shape>

3.3. Layer

<?xml version="1.0" encoding="uft-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="10.0d通過layer、layer-list可以實(shí)現(xiàn)圖層效果,圖片會(huì)依次疊加

3.4. Selector

Selector的作用在于幫助開發(fā)者實(shí)現(xiàn)靜態(tài)繪圖中的事件反饋,通過給不同的事件設(shè)置不同的圖像,從而在程序中根據(jù)用戶輸入,返回不同的效果

<?xml version="1.0" encoding="uft-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 默認(rèn)時(shí)的背景圖片 --> <item android:drawable="@drawable/X1" /> <!-- 沒有焦點(diǎn)時(shí)的背景圖片 --> <item android:state_window_focused="false" android:drawable="@drawable/X2" /> <!-- 非觸摸模式下獲得焦點(diǎn)并單擊時(shí)的背景圖片 --> <item android:state_focused="true" android:state_
4. Android繪圖技巧

4.1. Canvas

Canvas.save():保存畫布,將之前的所有已繪制圖像保存起來,讓后續(xù)的操作就好像在一個(gè)新的圖層上操作一樣Canvas.restore():合并圖層操作,將在save()之后繪制的所有圖像與save()之前的圖像進(jìn)行合并Canvas.translate():畫布平移,即坐標(biāo)系平移。在調(diào)用translate(x, y)方法之后,則將原點(diǎn)(0, 0)移動(dòng)到了(x, y),之后的所有繪圖操作都將以(x, y)為原點(diǎn)執(zhí)行Canvas.rotate():畫布翻轉(zhuǎn),即坐標(biāo)系翻轉(zhuǎn),將坐標(biāo)系旋轉(zhuǎn)一定的角度

4.2. Layer圖層

Android通過調(diào)用saveLayer()方法、saveLayerAlpha()方法將一個(gè)圖層入棧,使用restore()方法、restoreToCount()方法將一個(gè)圖層出棧。入棧的時(shí)候,后面所有的操作都發(fā)生在這個(gè)圖層上,而出棧的時(shí)候,則會(huì)把圖像繪制到上層Canvas上。

5. Android圖像處理之色彩特效處理

(待續(xù)……)


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久精品99国产国产精 | v天堂在线视频 | 久久精品一区视频 | 吾色视频 | 欧美老外a级毛片 | 国产一区二区三区视频观看 | 成人免费网站在线观看视频 | 日韩视频中文 | 亚洲成人激情在线 | 国产精品久久久久久久久久妇女 | 毛片网站视频 | 久草在线看片 | 黄色大片网站在线观看 | 自拍偷拍亚洲图片 | 久久精品视频国产 | 特黄一级小说 | 久久久久中精品中文字幕19 | 黑人日比视频 | 日本看片一区二区三区高清 | av免费片| h久久 | 最新久久免费视频 | 欧美国产综合视频 | 自拍偷拍亚洲图片 | 爱爱插插视频 | 久久吊| h视频在线免费观看 | 狠狠干五月天 | 中国免费一级毛片 | 欧美黄色免费视频 | 欧美韩国日本在线 | 羞羞视频免费网站 | www亚洲免费 | 欧美中文字幕一区二区三区亚洲 | 亚洲片在线 | 色诱亚洲精品久久久久久 | 久久久成人精品视频 | 在线看免电影网站 | 国产二区三区在线播放 | 久久精品伊人网 | av在线免费观看播放 |