Android 炫酷應用 300例 (實戰篇)

Android 炫酷應用 300例 (實戰篇)

作者: 羅帥 羅斌
出版社: 清華大學
出版在: 2019-07-01
ISBN-13: 9787302526278
ISBN-10: 7302526273





內容描述


本書以“問題描述+解決方案”的模式,以Android 5.0為核心例舉了300個實用性極強的移動端應用開發案例,旨在幫助廣大讀者快速解決實際開發過程中面臨的諸多問題,從而不斷提高開發效率、拓展應用領域。全書根據實例功能將內容分為UI佈局、常用控件、文字、圖形和圖像、動畫、音頻和視頻、文件和數據、系統和設備、第三方SDK開發等9章,以所見即所得、所學即所用的速成思維方式展示了個性化佈局、特效文字和圖形、矢量圖形動態繪制、顏色矩陣特效、PorterDuff特效、路徑特效、場景過渡、三維空間旋轉、圖像輪播、頭像裁剪、網格圖像動畫、旋轉3D地球、各種傳感器應用、網絡文件斷點續傳等超炫超酷實例的實現過程和代碼。使用第三方SDK進行應用開發,如使用騰訊SDK實現將文本、圖像、音樂、視頻等分享到QQ好友及微信朋友圈等; 使用百度SDK實現查詢駕車和步行線路、查詢指定城市的熱力圖、調用百度地圖的導航功能、以俯視角度觀察街道三維圖、在百度地圖上添加懸浮框和動畫等; 使用新浪SDK實現將圖像發布到微博、根據微博簡介內容生成二維碼等。 為了突出實用性和簡潔性,本書在演示或描述實例時,力求有針對性地解決問題,所有實例均配有插圖。本書適於作為Android應用開發人員的案頭參考書,無論是編程初學者,還是編程高手,本書都極具參考價值和收藏價值。


目錄大綱


第1章UI佈局
001使用純Java代碼創建應用UI界面
002使用自定義View代替佈局文件
003使用TableLayout佈局多個輸入框
004使用TextInputLayout管理輸入框提示
005使用GridLayout創建計算器按鍵佈局
006使用RelativeLayout按照相鄰關係佈局
007使用ConstraintLayout在右下角佈局
008使用TableLayout拉伸控件填充容器
009使用TableLayout縮小控件適應容器
010使用LinearLayout縱向居中對齊控件
011使用LinearLayout按權重分配控件空間
012使用ConstraintLayout平分剩餘空間
013使用ConstraintLayout無間隙佈局控件
014使用TabLayout和適配器創建選項卡
015使用TabLayout和Fragment創建選項卡
016使用FrameLayout創建縱向選項卡
017使用TabHost創建橫向選項卡
018使用AbsoluteLayout實現平移控件
019使用FrameLayout實現閃爍控件
020自定義FrameLayout創建翻頁捲邊動畫
第2章常用控件
021在TextView中創建空心文字
022在TextView中實現上文下圖的佈局
023在TextView中為文本添加超鏈接
024在自定義View中實現垂直滾動文本
025在EditText中指定輸入法的數字軟鍵盤
026禁止在EditText中插入非字符表情符號
027使用AutoCompleteTextView實現自動提示
028使​​用SearchView和ListView實現過濾輸入
029在EditText右端設置輸入提示內容和圖標
030通過自定義Shape創建不同的圓角按鈕
031通過設置背景圖像創建立體的質感按鈕
032使用FloatingActionButton創建懸浮按鈕
033以全屏效果顯示在ImageView中的圖像
034在自定義ImageView中顯示圓形圖像
035使用單指滑動拖曳ImageView的圖像
036使用Gallery實現滑動瀏覽多幅圖像
037使用SwipeRefreshLayout切換圖像
038使用AdapterViewFlipper自動播放圖像
039使用兩幅圖像定制ToggleButton開關狀態
040使用GridView創建網格顯示多幅圖像
041使用ViewPager實現縮放輪播多幅圖像
042使用Handler實現自動輪播ViewPager
043使用ViewPager實現蘋果風格的cover flow
044使用RecyclerView創建水平瀑布流圖像
045以網格或列表顯示RecyclerView列表項
046使用RecyclerView仿表情包插入輸入框
047使用CardView顯示RecyclerView列表項
048在ListView中創建圖文結合列表項
049使用ListPopupWindow實現下拉選擇
050使用Elevation創建陰影擴散的控件
051在單擊CheckBox時顯示波紋擴散效果
052使用自定義形狀定制Switch開關狀態
053自定義selector以漸變前景切換控件
054使用ViewSwitcher平滑切換兩個View
055使用SlidingDrawer實現抽屜式滑動
056自定義ScrollView實現下拉回彈動畫
057使用CollapsingToolbarLayout實現滾動折疊
058使用BottomNavigationView實現底部導航
059在ProgressBar上同時顯示兩種進度
060使用ViewOutlineProvider創建圓角控件
061使用AnalogClock創建自定義時鐘
062在TextClock中定制日期格式
063使用RatingBar實現星級評分
064在登錄窗口中使用SeekBar實現手動校驗
第3章文字
065使用ScaleXSpan創建扁平風格的文字
066使用MaskFilterSpan實現文字邊緣模糊
067使用MaskFilterSpan實現文字中心鏤空
068使用MaskFilterSpan實現文字整體模糊
069使用MaskFilterSpan模糊多個字符串
070使用BulletSpan在文本首字前添加小圓點
071使用StrikethroughSpan添加文字刪除線
072使用URLSpan為部分內容添加超鏈接
073使用ImageSpan同時顯示QQ表情和文字
074使用StyleSpan實現以粗斜體顯示文字
075使用SuperscriptSpan繪製勾股定理公式
076使用SubscriptSpan繪製硫酸亞鐵分子式
077使用TypefaceSpan定製文本的部分內容
078使用ForegroundColorSpan創建光照文字
079使用BlurMaskFilter創建陰影擴散文字
080使用EmbossMaskFilter創建浮雕文字
081通過自定義View在半圓弧上繪製文字
082通過自定義View在圓弧上滾動文字
083通過自定義View繪製漸變色的文字
084通過自定義View繪製線條描邊文字
085通過自定義View繪製陰影擴散文字
086加載字庫文件顯示自定義草書字體
087加載字庫文件顯示自定義液晶字體
088判斷在一個字符串中是否包含漢字
第4章圖形和圖像
089在自定義View中繪製徑向漸變的圖形
090在自定義View中實現圖像波紋起伏效果
091在自定義View中使用橢圓裁剪圖像
092通過PorterDuff模式增暗顯示兩幅圖像
093通過PorterDuff模式將圖像裁剪成五角星
094通過PorterDuff模式改變tint屬性疊加效果
095使用Region的DIFFERENCE實現摳圖功能
096使用ShapeDrawable裁剪三角形圖像
097使用ClipDrawable裁剪圖像實現星級評分
098使用自定義Drawable實現對圖像進行圓角
099使用Matrix實現按照指定方向傾斜圖像
100使用ColorMatrix為圖像添加泛紫效果
101使用ColorMatrix實現圖像的加暗效果
102通過自定義ColorMatrix調整圖像藍色色調
103使用RenderScript實現高斯算法模糊圖像
104使用拉普拉斯模板實現圖像的銳化特效
105通過像素操作實現在圖像上添加光照效果
106通過像素操作使彩色圖像呈現浮雕特效
107使用BitmapShader實現文字線條圖像化
108使用BlurMaskFilter為圖像添加輪廓線
109使用PathDashPathEffect實現橢圓線條
110使用SumPathEffect疊加多種路徑特效
111通過BitmapShader實現以圖像填充橢圓
112使用ComposeShader創建漸變圖像
113使用ImageView顯示XML實現的矢量圖形
114使用BitmapFactory壓縮圖像的大小
115在自定義類中使用Movie顯示動態圖像
116通過使用圖像作為畫布創建帶水印圖像
117通過操作根佈局實現將屏幕內容保存為圖像
118通過手勢變化實現平移旋轉縮放圖像
119使用ThumbnailUtils提取大圖像的縮略圖
120通過採用取模的方式實現輪流顯示多幅圖像
第5章動畫
121使用ObjectAnimator創建上下振動動畫
122使用ObjectAnimator實現沿弧線路徑平移
123使用ObjectAnimator滾動顯示多幅圖像
124使用ObjectAnimator實現圖形數字形變
125使用ObjectAnimator改變圖像的色相值
126使用AnimatorSet組合多個ObjectAnimator
127使用TypeEvaluator實現顏色過渡動畫
128通過trimPathEnd實現動態生成手指圖形
129使用ValueAnimator動態改變扇形轉角
130使用ValueAnimator實現分段轉圈動畫
131使用ValueAnimator在三維Z軸上平移圖像
132使用ValueAnimator實現起飛轉平飛動畫
133自定義TypeEvaluator以GIF動畫顯示圖像
134使用Animation實現圖像圍繞自身中心旋轉
135自定義Animation實現旋轉切換撲克牌正反面
136使用AnimationSet實現組合多個不同的動畫
137使用Animation實現按照順序顯示網格Item
138使用windowAnimations實現縮放對話框窗口
139使用AnimationDrawable播放多幅圖像
140使用AnimationDrawable創建爆炸動畫
141使用RotateAnimation實現圍繞自身中心旋轉
142使用AlphaAnimation創建淡入淡出動畫
143使用ScaleAnimation創建縮放圖像動畫
144在ViewPager中實現上下滑動的轉場動畫
145通過下拉手指實現兩個Activity的相互切換
146在應用啟動時使用進場動畫啟動Activity
147以左入右出的動畫效果切換兩個Activity
148以收縮擴張的動畫效果切換兩個Activity
149使用轉場動畫Explode切換兩個Activity
150使用轉場動畫Slide切換兩個Activity
151以指定位置的轉場動畫切換兩個Activity
152在切換Activity時疊加縮放動畫和轉場動畫
153在切換Activity的轉場動畫中共享多對元素
154使用FragmentTransaction自定義轉場動畫
155使用TransitionManager實現上下滑動動畫
156使用TransitionManager實現圍繞Y軸旋轉
157使用TransitionManager實現Fade動畫效果
158使用TransitionManager組合多個不同動畫
159使用TransitionManager實現單佈局過渡動畫
160使用TransitionManager實現平移過渡動畫
161使用TransitionManager實現縮放部分圖像
162使用TransitionManager實現矢量路徑動畫
163使用TransitionManager同時實現多種動畫
164使用TransitionManager實現XML定制動畫
165使用TransitionManager指定控件執行動畫
166使用TransitionManager實現列表項滑入動畫
167使用TransitionManager實現弧線路徑動畫
168使用TransitionManager實現裁剪區域動畫
169通過設置和獲取控件的Tag確定動畫過渡行為
170在TransitionSet中指定多個動畫的執行順序
171使用TransitionDrawable透明切換兩幅圖像
172使用AnimatedVectorDrawable實現轉圈動畫
173創建AnimatedVectorDrawableCompat動畫
174使用ViewPropertyAnimator創建多個動畫
175自定義selector實現以動畫形式改變陰影大小
176使用ripple標籤創建中心波紋擴散動畫
177使用GLSurfaceView實現3D地球的自轉
第6章音頻和視頻
178使用MediaPlayer播放本地mp3音樂文件
179使用MediaPlayer播放本地mp4視頻文件
180使用MediaPlayer播放指定網址的音樂文件
181使用滑塊同步MediaPlayer播放音頻的進度
182使用滑塊同步MediaPlayer播放視頻的進度
183使用MediaController創建視頻播放控制欄
184使用MediaMetadataRetriever實現視頻截圖
185使用MediaMetadataRetriever獲取視頻縮略圖
186使用VideoView播放本地mp4視頻文件
187使用VideoView播放指定網址的視頻文件
188使用MediaRecorder錄製音頻文件
189使用RemoteViews在通知欄上創建播放器
190在使用SurfaceView播放視頻時實現橫屏顯示
191在選擇音樂曲目窗口中選擇音樂文件並播放
192在RecyclerView中加載音樂文件並播放
193依次播放在RecyclerView中的音樂文件
194在ListView上加載手機外存的音樂文件
195使用SoundPool播放較短的聲音片段
196使用AudioManager增大或減小音量
197使用AudioManager播放系統預置的聲音
198使用AudioManager獲取和設置鈴聲模式
第7章文件和數據
199使用JSONObject解析JSON字符串
200使用JSONArray解析JSON字符串
201使用JSONTokener解析JSON字符串
202使用JsonReader解析JSON字符串
203使用JSONStringer創建JSON字符串
204使用JSONObject根據IP顯示所在城市
205使用Gson將數組轉換成JSON字符串
206使用Gson解析JSON字符串
207使用XmlPullParser解析城市天氣數據
208採用SAX方式解析XML文件內容
209使用Pattern根據正則表達式校驗手機號碼
210使用SharedPreferences保存賬戶和密碼
211使用ListPreference讀寫單選按鈕值
212在代碼中獲取CheckBoxPreference值
213通過PreferenceScreen跳轉到Wifi設置
214使用Intent實現在Activity之間傳遞小圖像
215使用Intent在Activity之間傳遞圖像和文本
216使用Intent在Activity之間傳遞集合數據
217在Intent傳遞數據時使用Bundle攜帶數組
218使用Intent在Service和Activity之間傳遞數據
219使用FileInputStream和FileOutputStream讀取和保存文本文件
220將浮雕風格的特效文字保存為圖像文件
221在SD卡上將Bitmap保存為PNG圖像文件
222從手機相冊中選擇圖像文件並裁剪頭像
223在ListView上加載手機外存的圖像文件
224使用DownloadManager下載網絡文件
225使用RandomAccessFile實現斷點續傳下載
226使用HttpURLConnection下載圖像文件
第8章系統和設備
227使用QuickContactBadge訪問聯繫人
228使用ContentProviderOperation增加聯繫人
229使用ContentProviderOperation修改聯繫人
230使用ContentProviderOperation刪除聯繫人
231使用ContentResolver檢測飛行模式的狀態
232使用ContentResolver檢測手機的時間格式
233使用ContentResolver獲取所有短信
234使用ContentResolver獲取通話記錄
235使用ContentResolver獲取SD卡的文件
236使用ContentResolver改變屏幕亮度值
237使用ContentResolver設置屏幕亮度值
238使用ContentResolver檢測旋轉屏幕功能
239使用BroadcastReceiver監聽來電電話號碼
240使用BroadcastReceiver判斷手機電池是否正在充電
241使用BroadcastReceiver監聽屏幕開啟或關閉
242自定義BroadcastReceiver實現短信攔截
243使用RingtoneManager設置手機鬧鐘鈴聲
244使用RingtoneManager設置手機通知鈴聲
245使用AlarmManager以指定時間執行操作
246使用AudioManager獲取和設置音量
247使用PowerManager實現屏幕一直亮著
248使用WallpaperManager設置壁紙
249使用PackageManager獲取支持分享的應用
250使用WifiManager開啟或關閉WiFi信號
251使用WifiManager獲取IP地址
252使用ConnectivityManager判斷網絡狀態
253使用BluetoothAdapter打開或關閉藍牙
254使用LocationListener獲取當前經緯度值
255使用SensorManager獲取傳感器信息
256使用傳感器監測耳朵與手機聽筒的距離
257使用加速度傳感器監聽手機的三維變化
258通過傳感器實現自動進行橫屏和豎屏切換
259使用setRequestedOrientation()實現橫屏
260根據手機是橫屏或是豎屏進行控件佈局
261使用FLAG_FULLSCREEN標誌實現全屏顯示
262使用Display獲取屏幕寬度和高度
263使用StatFs獲取內部總空間和可用空間大小
264使用GestureDetector實現縱向滑動切換
265自定義手機振動器(Vibrator)的振動模式
266使用SurfaceView實現照相機的預覽功能
267使用Camera實現縮小和放大預覽畫面
268使用Camera實現預覽時攝像頭手動對焦
269從相冊中選擇圖像並設置為手機壁紙
270使用Runnable間隔執行重複的任務
271使用Timer實現促銷活動的倒計時功能
272使用Runtime執行系統命令靜默安裝應用包
第9章第三方SDK開發
273使用騰訊SDK獲取授權QQ賬戶的簡介
274使用騰訊SDK實現以第三方登錄QQ賬戶
275使用騰訊SDK將指定文本分享給QQ好友
276使用騰訊SDK將本地圖像發表到QQ空間
277使用微信SDK將視頻鏈接分享給微信好友
278使用微信SDK將音樂鏈接分享到朋友圈
279使用百度SDK根據起點和終點規劃步行線路
280使用百度SDK實現將駕車線路分享給好友
281使用百度SDK調用百度地圖App的駕車導航
282使用百度SDK調用百度地圖App的POI檢索
283使用百度SDK實現在地圖中定位手機位置
284使用百度SDK獲取在地圖上點擊位置的地名
285使用百度SDK在地圖的城市之間繪製連線
286使用百度SDK在地圖上添加圖文懸浮框
287使用百度SDK在地圖上添加淡入動畫
288使用百度SDK在地圖上添加彈跳型動畫
289使用百度SDK在地圖上查詢指定城市興趣點
290使用百度SDK在地圖上為行政區添加邊界線
291使用百度SDK在地圖指定範圍添加圓角矩形
292使用百度SDK查詢指定地點的熱力圖
293使用百度SDK實現隱藏或顯示地名標註信息
294使用百度SDK實現以俯視角觀察街道三維圖
295使用百度SDK實現根據經緯度計算兩地距離
296使用新浪SDK實現跳轉到微博主頁
297使用新浪SDK獲取授權微博賬戶的簡介
298使用新浪SDK將微博賬戶簡介生成二維碼
299使用新浪SDK實現搜索指定關鍵字的微博
300使用新浪SDK實現發布圖像至微博




相關書籍

Inter-Asterisk Exchange (IAX): Deployment Scenarios in SIP-Enabled Networks (Hardcover)

作者 Mohamed Boucadair

2019-07-01

學會 Swift 4 程式設計的 21堂課

作者 蔡明志

2019-07-01

自己動手做iOS App:從設計開發到上架App Store

作者 張子怡

2019-07-01