繼兩年前發布《輕松搞定extjs》之后,本人的第二個作品。
下載地址:http://download.csdn.net/detail/lifenote/9445898
封面 1
序 2
捐助說明 5
目 錄 7
第一章 View的繪圖流程 12
1.1、概述 12
1.2、Activity的組成結構 13
1.3、View樹的繪圖流程 15
1.3.1 測量組件大小 16
1.3.2 確定子組件的位置 17
1.3.3 繪制組件 18
1.4、說點別的 22
1.5 練習作業 22
第二章 Graphics2D API 23
2.1、概述 23
2.2、Point類和PointF類 23
2.3、Rect類和RectF類 25
2.4、Bitmap類和BitmapDrawable類 32
2.5、Canvas類與Paint類 34
2.5.1 繪圖概述 34
2.5.2 Paint類 34
2.5.3 Canvas類 39
2.6 練習作業 63
第三章 使用Graphics2D實現動態效果 64
3.1 概述 64
3.2 invalidate()方法 65
3.3 坐標轉換 69
3.4 剪切區(Clip) 73
3.5 案例:指針走動的手表 82
3.6 練習作業 88
第四章 雙緩存技術 89
4.1 雙緩存 89
4.2 在屏幕上繪制曲線 90
4.3 在屏幕上繪制矩形 99
4.4 案例:繪圖App 104
4.4.1 繪圖屬性 106
4.4.2 軟件參數 108
4.4.3 繪圖緩沖區 109
4.4.4 撤消操作 111
4.4.5 圖形繪制 113
4.4.6 繪圖區 118
4.4.7 主界面 119
4.5 練習作業 122
第五章 陰影、漸變和位圖運算 123
5.1 概述 123
5.2 陰影 123
5.3 漸變 125
5.3.1 線性漸變(LinearGradient) 126
5.3.2 徑向漸變(RadialGradient) 130
5.3.3 掃描漸變(SweepGradient) 135
5.3.4 位圖漸變(BitmapShader) 138
5.3.5 混合漸變(ComposeShader) 140
5.3.6 漸變與Matrix 142
5.4 位圖運算 143
5.4.1 PorterDuffXfermode 143
5.4.2 圖層(Layer) 146
5.4.3 位圖運算技巧 148
5.5 案例1:圓形頭像 152
5.6 案例2:刮刮樂 156
5.7 練習作業 161
第六章 自定義組件 163
6.1 概述 163
6.2 自定義組件的基本結構 164
6.3 重寫onMeasure方法 166
6.4 組件屬性 175
6.4.1 屬性的基本定義 175
6.4.2 讀取來自style和theme中的屬性 181
6.5 案例1:圓形ImageView組件 186
6.6 案例2:驗證碼組件CodeView 190
6.7 練習作業 202
第七章 自定義容器 204
7.1 概述 204
7.2 ViewGroup類 205
7.2.1 ViewGroup常用方法 205
7.2.2 ViewGroup的工作原理 208
7.2.3 重寫onLayout()方法 213
7.3 CornerLayout布局 217
7.3.1 基本實現 217
7.3.2 內邊距padding 224
7.3.3 外邊距margin 228
7.3.4 自定義LayoutParams 238
7.4 案例:流式布局(FlowLayout) 246
7.5 練習作業 256
第八章 Scroller與平滑滾動 257
8.1 概述 257
8.2 認識scrollTo()和scrollBy()方法 258
8.3 Scroller類 264
8.4 平滑滾動的工作原理 271
8.5 案例:觸摸滑屏 272
8.5.1 觸摸滑屏的技術分析 272
8.5.2 速度跟蹤器VelocityTracker 273
8.5.3 觸摸滑屏的分步實現 274
8.6 練習作業 285
第九章 側邊欄 287
9.1 概述 287
9.2 使用二進制保存標識數據 289
9.2.1 位運算符 289
9.2.2 位運算的常用功能 292
9.3 繼承自ViewGroup的側邊欄 293
9.4 繼承自HorizontalScrollView的側邊欄 304
9.5 練習作業 312
第十章 加強版ListView 313
10.1 概述 313
10.2 ListView的基本使用 314
10.3 ListItem隨手指左右滑動 318
10.4 向右滑動刪除ListItem 326
10.5 滑動ListItem出現刪除按鈕 336
10.5.1 列表項專用容器ExtendLayout 337
10.5.2 列表項能滑出刪除按鈕的ListView 342
10.5.3 定義布局文件 350
10.5.4 顯示ListView 351
10.6練習作業 353
案例代碼說明 354