a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 系統 > Android > 正文

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

2019-11-09 17:32:34
字體:
來源:轉載
供稿:網友

1. 屏幕的尺寸信息

1.1. 屏幕參數

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

1.2. 系統屏幕密度

系統定義了幾個標準的DPI值,作為手機的固定DPI

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

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

1.3. 獨立像素密度dp

由于各種屏幕密度的不同,導致同樣像素大小的長度,在不同密度的屏幕上顯示長度不同 Android系統使用mdpi的屏幕作為標準,在這個屏幕上1px = 1dp 例如同樣是100dp的長度,在mdpi中為100px,而在hdpi中為150px 在hdpi中1dp = 1.5px,在xhdpi中1dp = 2px,在xxhdpi中1dp = 3px

1.4. 單位轉換

可將dp、sp轉換為px的工具類保存到項目中

2. 2D繪圖基礎

系統通過提供的Canvas對象來提供繪圖方法,如drawPoint(點)、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

例子:通過漸變實現陰影效果

<?xml version="1.0" encoding="uft-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" // 默認為rectangle android:shape="rectangle"> <corners // 當shape="rectangle"時使用 // 半徑,會被topLeftRadius等單個半徑屬性覆蓋,默認為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可以實現圖層效果,圖片會依次疊加

3.4. Selector

Selector的作用在于幫助開發者實現靜態繪圖中的事件反饋,通過給不同的事件設置不同的圖像,從而在程序中根據用戶輸入,返回不同的效果

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

4.1. Canvas

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

4.2. Layer圖層

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

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

(待續……)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中文精品一区二区三区 | 免费成人高清 | 亚洲福利电影网 | 欧美成人综合视频 | 91成人一区 | jizzjizz亚洲中国少妇 | 国产精品日本一区二区不卡视频 | 久在草视频 | 爱爱日韩 | 久久久久久一区 | 中文字幕一区二区三区四区不卡 | 影音先锋中文字幕在线 | 一区2区| 中文字幕乱码一区二区三区 | 国产网站视频 | 久久免费视频观看 | 亚洲高清视频在线观看 | 亚洲免费在线观看 | 久久99这里只有精品 | 欧美日韩色图 | 国产在线精品一区二区 | 日韩欧美在线看 | 国产一区二区精品 | 日韩中文字幕电影在线观看 | 欧美精品一区二区三区在线四季 | 久久久久久久国产精品 | 久久亚洲一区 | 日韩成人黄色 | 国产精品无码久久久久 | 羞羞网站免费 | 久久免费视频网 | 国产suv精品一区二区6 | 一区二区免费在线观看 | 中文字幕日韩欧美一区二区三区 | 一级黄视频 | 成人精品视频 | 欧美精品在线免费观看 | 三区视频| 伊人福利视频 | 国产日韩免费 | 中文字幕第一区 |