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

羅帥、羅斌

  • 出版商: 清華大學
  • 出版日期: 2019-07-01
  • 售價: $599
  • 貴賓價: 9.5$569
  • 語言: 簡體中文
  • ISBN: 7302526273
  • ISBN-13: 9787302526278
  • 相關分類: Android

立即出貨

買這商品的人也買了...

商品描述

本書以“問題描述+解決方案”的模式,以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實現發布圖像至微博