Android專案常用功能綜合例項

加飯也加菜發表於2018-06-14

寫在開始:這個專案中有一些東西是從網上和之前做的專案中借鑑而來,並非所有都是原創,特此說明,但是太多太雜,所以就不一一列明出處了。

這個專案是本人結合自己之前開發過的Android專案總結而成的一個範例專案,做這個範例專案的目的很簡單,就是想把平時常用的一些功能全部集合到這個專案中,為以後的開發提供便利,也為一些新手提供參考,本專案以後還會持續更新,希望大家下載的時候,順手給個star,畢竟總結不易,下面附上下載地址,:

https://github.com/gongchenghao/GchTestProject

專案中有一個Guide類,這個類對專案中的各個包進行了說明,大家看的時候可以根據這個類瞭解各個功能。下面附上這個類:

package gcg.testproject;

import gcg.testproject.dialog.MySimpleDialog;

import gcg.testproject.dialog.ProgressDialog;

/**

  • @ClassName:Guide

  • @PackageName:gcg.testproject

  • @Create On 2018/1/25 11:31

  • @author:gongchenghao

  • @Copyrights 2018/1/25 宮成浩 All rights reserved.

*/

public class Guide {

// ================================================= 本專案各個包使用說明 ================================================

// ================================================== utils包工具類使用指南 ===============================================

// DensityUtils : dp、px、sp互相轉換

// WebViewUtils : WebView使用工具類

// OpenFileUtils : 開啟檔案

// GetSqurePic : 獲取正方形圖片、獲取長方形圖片

// GetPhoneMessage : 獲取手機資訊

// GetRoundPicUtils : 獲取圓角圖片、獲取圓形圖片、放大縮小圖片、將Drawable轉化為Bitmap、獲得帶倒影的圖片

// IconUtil : 設定圓形頭像

// CheckUtils : 檢查手機號、身份證號、字串是否為數字、設定地區編碼、驗證日期字串是否是YYYY-MM-DD格式、郵箱、銀行卡號、是否是中文、是否包含中文、驗證URL、判斷是否匹配正則、

// 驗證IP地址、替換所有正則匹配的部分、獲取正則匹配的部分、獲取正則匹配分組、替換正則匹配的第一部分

// CacheManager : 獲取快取大小、清理快取、獲取檔案大小、格式化單位

// GetUpLoadPicUtils :上傳圖片時對圖片進行壓縮(掌一眼中用)

// TextViewUtils :處理TextView中文字換行的工具類

// VideoPlayUtils :視訊播放工具類

// DBHelper、DBHelperDAO :SQLite資料庫工具類

// DownLoadUtils :下載檔案的工具類

// ListViewHeightBasedOnChildren :重新繪製列表條目的高度

// AppUtils :獲取應用程式名稱、獲取應用程式版本名稱資訊、判斷App是否安裝、安裝App、靜默安裝App、解除安裝App、靜默解除安裝App、判斷App是否有root許可權、開啟App、獲取App包名、

// 獲取App具體設定、獲取App名稱、獲取App圖示、獲取App路徑、獲取App版本號、判斷App是否是系統應用、判斷App是否是Debug版本、獲取App簽名、獲取應用簽名的的SHA1值

// 判斷App是否處於前臺、封裝App資訊的Bean類、得到AppInfo的Bean、獲取所有已安裝App資訊、清除App所有資料、判斷裝置是否root、獲取裝置系統版本號、獲取裝置AndroidID

// 獲取裝置MAC地址、獲取裝置廠商、關機、重啟、重啟到recovery、重啟到bootloader、

// FileSizeUtil :獲取檔案或資料夾的大小

// KeyBoardUtils :開啟或關閉軟鍵盤

// LogUtils :日誌列印工具類

// MoveUtils :跳轉工具類

// NetUtils :判斷是否聯網、是否是WIFI、跳轉到網路設定介面

// ScreenUtils :獲取螢幕高度、寬度、狀態列高度、 獲取當前螢幕截圖(包含狀態列)、獲取當前螢幕截圖(不包含狀態列)、設定螢幕為橫屏、設定螢幕為豎屏、判斷是否橫屏、判斷是否豎屏、

// 獲取螢幕旋轉角度、判斷是否鎖屏、設定進入休眠時長、獲取進入休眠時長

// SDCardUtils :判斷SD卡是否可用、獲取SD卡路徑、獲取SD卡的剩餘容量(單位byte)、獲取指定路徑所在空間的剩餘可用容量位元組數(單位byte)、獲取系統儲存路徑、獲取SD卡data路徑、獲取SD卡剩餘空間

// 獲取SD卡資訊

// ToastUtils :顯示短時間的toast、長時間的toast、自定義時間的toast、自定義UI的toast

// TimeUtils :格式化時間戳的工具類 獲取星座、獲取生肖、獲取年份中的第幾周、獲取星期索引、 獲取美式星期、獲取中式星期、判斷是否閏年、判斷是否今天、 獲取與當前時間等於時間差的Date

// 獲取與當前時間等於時間差的時間字串、獲取與給定時間等於時間差的Date、獲取與給定時間等於時間差的時間字串、獲取與給定時間等於時間差的時間戳、獲取友好型與當前時間的差

// 獲取合適型與當前時間的差、獲取當前Date、獲取當前時間字串、獲取當前毫秒時間戳、將時間戳轉為Date型別、將Date型別轉為時間戳、將Date型別轉為時間字串

// 將時間字串轉為Date型別、將時間字串轉為時間戳、將時間戳轉為時間字串、

// ActivityUtils :判斷是否存在Activity、啟動Activity、獲取launcher activity、獲取棧頂Activity

// BarUtils :設定狀態列顏色、為滑動返回介面設定狀態列顏色、設定狀態列純色(不加半透明效果)、使狀態列半透明、設定狀態列全透明、隱藏偽狀態列、判斷狀態列是否存在、

// 獲取ActionBar高度、顯示通知欄、 隱藏通知欄、獲取導航欄高度

// CameraUtils :獲取開啟照程式介面的Intent、獲取跳轉至相簿選擇介面的Intent、獲取[跳轉至相簿選擇介面,並跳轉至裁剪介面,預設可縮放裁剪區域]的Intent

// 獲取[跳轉至相簿選擇介面,並跳轉至裁剪介面,可以指定是否縮放裁剪區域]的Intent、獲得選中相簿的圖片、獲得選中相簿的圖片路徑、獲取拍照之後的照片檔案(JPG格式)

// ClipboardUtils :剪貼簿相關工具類,複製文字到剪貼簿、獲取剪貼簿的文字、複製uri到剪貼簿、獲取剪貼簿的uri、複製意圖到剪貼簿、獲取剪貼簿的意圖

// CloseUtils :關閉IO、安靜關閉IO

// CrashUtils :崩潰相關工具類

// EncodeUtils :編碼解碼相關工具類 URL編碼、URL解碼、Base64編碼、Base64解碼、Base64URL安全編碼、Html編碼、Html解碼

// EncryptUtils :加密解密工具類 MD2加密、MD5加密、MD5加密檔案、SHA1加密、SHA224加密、SHA256加密、SHA384加密、SHA512加密、hash加密模板、HmacMD5加密

// HmacSHA1加密、HmacSHA224加密、HmacSHA256加密、HmacSHA384加密、HmacSHA512加密、Hmac加密模板、DES轉變、DES加密後轉為Base64編碼、

// DES加密後轉為16進位制、DES加密、DES解密Base64編碼密文、DES解密16進位制密文、DES解密、3DES轉變、3DES加密後轉為Base64編碼、3DES加密後轉為16進位制、

// 3DES加密、3DES解密Base64編碼密文、3DES解密16進位制密文、3DES解密、AES轉變、AES加密後轉為Base64編碼、AES加密後轉為16進位制、AES加密、AES解密Base64編碼密文

// AES解密16進位制密文、AES解密、DES加密模板

// FileIOUtils :將輸入流寫入檔案、將位元組陣列寫入檔案、將字串寫入檔案、讀取檔案到字串連結串列中、讀取檔案到字串中、讀取檔案到位元組陣列中、設定緩衝區尺寸、

// FileUtils :根據檔案路徑獲取檔案、判斷檔案是否存在、重新命名檔案、判斷是否是目錄、判斷是否是檔案、判斷目錄是否存在,不存在則判斷是否建立成功、

// 判斷檔案是否存在,不存在則判斷是否建立成功、判斷檔案是否存在,存在則在建立之前刪除、複製或移動目錄、複製或移動檔案、複製目錄、複製檔案、移動目錄、

// 移動檔案、刪除目錄、刪除檔案、刪除目錄下的所有檔案、獲取目錄下所有檔案、獲取目錄下所有檔案包括子目錄、根據字尾名獲取目錄下所有字尾名檔案、

// 根據字尾名獲取目錄下所有檔案包括子目錄、獲取目錄下所有符合FilenameFilter的檔案、獲取目錄下所有符合FilenameFilter的檔案包括子目錄

// 獲取目錄下指定檔名的檔案包括子目錄、獲取檔案最後修改的毫秒時間戳、簡單獲取檔案編碼格式、獲取檔案行數、獲取目錄大小、獲取檔案大小、獲取目錄長度、獲取檔案長度

// 獲取檔案的MD5校驗碼、獲取全路徑中的最長目錄、獲取全路徑中的檔名、獲取全路徑中的不帶擴充名的檔名、獲取全路徑中的檔案擴充名、

// FragmentUtils :新增fragment、先隱藏後新增fragment、新增多個fragment、移除fragment、移除到指定fragment、移除同級別fragment、移除所有fragment、替換fragment、

// 出棧fragment、出棧到指定fragment、出棧同級別fragment、出棧所有fragment、先出棧後新增fragment、隱藏fragment、隱藏同級別fragment、顯示fragment、

// 先隱藏後顯示fragment、傳參、獲取引數、操作fragment、獲取同級別最後加入的fragment、根據棧引數獲取同級別最後加入的fragment、 獲取頂層可見fragment、

// 獲取棧中頂層可見fragment、根據棧引數獲取頂層可見fragment、獲取同級別fragment、獲取棧中同級別fragment、根據棧引數獲取同級別fragment、

// 獲取所有fragment、獲取棧中所有fragment、根據棧引數獲取所有fragment、獲取目標fragment的前一個fragment、查詢fragment、處理fragment回退鍵、

// 設定背景色、設定背景資源、設定背景、

// ImageUtils :bitmap轉byte[]、byte[]轉bitmap、drawable轉bitmap、bitmap轉drawable、drawable轉byte[]、byte[]轉drawable、view轉Bitmap、計算取樣大小、獲取bitmap

// 縮放圖片、裁剪圖片、傾斜圖片、旋轉圖片、獲取圖片旋轉角度、轉為圓形圖片、轉為圓角圖片、快速模糊、renderScript模糊圖片、stack模糊圖片、新增顏色邊框、

// 新增倒影、新增文字水印、新增圖片水印、轉為alpha點陣圖、轉為灰度圖片、儲存圖片、根據檔名判斷檔案是否為圖片、獲取圖片型別、流獲取圖片型別、判斷bitmap物件是否為空

// 按縮放壓縮、按質量壓縮、按取樣大小壓縮、

// LocationUtils :定位工具類 判斷Gps是否可用、判斷定位是否可用、開啟Gps設定介面、註冊、登出、設定定位引數、根據經緯度獲取地理位置、根據經緯度獲取所在國家、

// 根據經緯度獲取所在地、根據經緯度獲取所在街道、是否更好的位置、是否相同的提供者、

// LunarUtils :日曆工具類 根據農曆年份獲取天干地支、農曆轉公曆、公曆轉農曆、

// PhoneUtils :手機相關工具類 判斷裝置是否是手機、獲取IMEI碼、獲取移動終端型別、判斷sim卡是否準備好、獲取Sim卡運營商名稱、跳至撥號介面、撥打電話、跳至傳送簡訊介面、

// 傳送簡訊、獲取手機聯絡人、開啟手機聯絡人介面點選聯絡人後便獲取該號碼、獲取手機簡訊並儲存到xml中、

// PinyinUtils :拼音相關工具類 漢字轉拼音、獲取第一個漢字首字母、獲取所有漢字的首字母、根據名字獲取姓氏的拼音、根據名字獲取姓氏的首字母、多音字姓氏對映表、

// ProcessUtils :程式相關工具類 獲取前臺執行緒包名、獲取後臺服務程式、殺死所有的後臺服務程式、殺死後臺服務程式、

// ServiceUtils :服務相關工具類 獲取所有執行的服務、啟動服務、停止服務、繫結服務、解綁服務、判斷服務是否執行

// ShellUtils :Shell相關工具類 是否是在root下執行命令、返回的命令結果

// GetViewSizeUtils : 在onCreate中獲取檢視的尺寸、獲取到View尺寸的監聽、測量檢視尺寸、獲取測量檢視寬度、獲取測量檢視高度

// SPUtils : 獲取SP例項、寫入String、讀取String、寫入int、讀取int、寫入long、讀取long、寫入float、讀取float、寫入boolean、讀取boolean、寫入String集合、

// 讀取StringSet、獲取所有鍵值對、是否存在該key、移除該key、清除所有資料

// StringUtils : 判斷字串是否為null或長度為0、判斷字串是否為null或全為空格、判斷字串是否為null或全為空白字元、判斷兩字串是否相等、判斷兩字串忽略大小寫是否相等、

// null轉為長度為0的字串、返回字串長度、首字母大寫、首字母小寫、反轉字串、轉化為半形字元、轉化為全形字元

// ThreadPoolUtils :執行緒池相關工具類 在未來某個時間執行給定的命令、在未來某個時間執行給定的命令連結串列、待以前提交的任務執行完畢後關閉執行緒池、試圖停止所有正在執行的活動任務、

// 判斷執行緒池是否已關閉、關閉執行緒池後判斷所有任務是否都已完成、請求關閉發生超時或者當前執行緒中斷、提交一個Callable任務用於執行、提交一個Runnable任務用於執行、

// 執行給定的任務、延遲執行Runnable命令、延遲執行Callable命令、延遲並迴圈執行命令、延遲並以固定休息時間迴圈執行命令

// VibrationUtils :震動相關工具類 震動、指定手機以pattern模式振動、取消振動

// ZipUtils :檔案壓縮相關工具類 批量壓縮檔案、壓縮檔案、批量解壓檔案、解壓檔案、解壓帶有關鍵字的檔案、獲取壓縮檔案中的檔案路徑連結串列、獲取壓縮檔案中的註釋連結串列、

// 獲取壓縮檔案中的檔案物件、

// ============================================== widget包自定義控制元件 ============================================

// OvalImageView :載入圓角矩形的圖片

// XCRoundRectImageView :載入圓角矩形的圖片

// TimeTextView : 列表中用到的計時器

// ZoomImageView :可縮放圖片的ImageView

// OScrollView :自定義ScrollView,是為了解決在ScrollView中巢狀viewpager時viewpager滑動不了的問題

// OListView :自定義listview,為了解決在ScrollView中巢狀listview時顯示不全的問題

// OGridView :自定義gridview,為了解決在ScrollView中巢狀gridview時顯示不全的問題

// ORecycleView :自定義gridview,為了解決在ScrollView中巢狀gridview時顯示不全的問題

// CustomVideoView :使用videoview播放視訊時,如果視訊的解析度不夠,右側可能會有白邊,這個自定義videoview,修復了這個問題(播放視訊)

// (videoview是Android自身為我們提供的視訊播放的元件,但是它僅支援播放mp4和3gp格式的檔案,能播放的視訊檔案格式非常少,建議使用surfaceView結合mediaplayer播放視訊)

// VideoPlayProgressBar :自定義進度條,可以用於播放視訊時的進度顯示

// NoScrollGridView : 解決滑動衝突的GirdView

// NoScrollListView :解決滑動衝突的ListView

// RoundImageView : 圓形頭像

// SquareImage : 方形頭像

// MyRatingBar :自定義ratingbar,可以改變星星的樣式、大小

// ListSlideView :自定義ListView,可以單個條目側滑刪除

// NoScrollViewPager :自定義ViewPager,不可滑動

// =========================================== selectphoto包 =============================

// 選擇照片的功能,包括拍攝照片和選擇本地照片

// ============================================ selectvideo包 ==============================

// 選擇視訊的功能,包括拍攝視訊和選擇本地視訊,支援選擇後進行播放

// ============================================ banner包 =================================

// 輪播圖

// =============================== selectdate包 =============================================

// 日期選擇器1

// =============================== selectdate2包 ============================================

// 日期選擇器2

// ================================ contactlist包 ============================================

// 仿聯絡人列表

// ================================ dialog包 =================================================

// ProgressDialog : 獲取資料時的載入提示框

// MySimpleDialog :功能性對話方塊

// ================================ RightTopPopWindow包 ======================================

// 仿微信右上角彈框

// ================================ SplashAndGuide包 =========================================

// Splash介面和Guide介面

// ================================ progressbar包 ============================================

// 圓形進度條

// Android自帶的progressbar進度條的兩種樣式

// ================================= ratingbar包 ==============================================

// 系統自帶的ratingbar

// 自定義ratingbar,可以控制星星的大小和間距

// ================================= uodate包 =================================================

// 版本更新

// ================================= sanji包 ==================================================

// 省市區三級聯動

// ================================= erweima包 ================================================

// 掃描二維碼的功能,支援開啟閃光燈,自定義掃碼介面

// ================================= http包 ===================================================

// Xutils工具類,是xutils網路框架的封裝類,包括六個個方法,即普通非同步get請求,普通非同步post請求,帶快取的非同步get請求,帶快取的非同步post請求,檔案上傳,檔案下載

// ================================= RefreshAndLoadMore =======================================

// 上拉載入、下拉重新整理功能 注意點:裡面有五個“注意點”,是必須呼叫的

// ================================= ListViewDelete包 ==========================================

// listview的條目刪除功能,可以整體側滑刪除,也可以單個側滑刪除

// ================================= ListCountDown包 ==========================================

// listview的列表倒數計時

// ================================= location包 ===============================================

// 高德定位

}

相關文章