為之于未有痛单,治之于未亂德撬。
1银酬、關(guān)于View.getBackground().setAlpha(i);的坑
- 坑:在使用上述方法動態(tài)改變view透明度時末贾,會導致應(yīng)用中其他相同控件的透明度發(fā)生變化;
- 原因:默認情況下勋陪,所有從同一資源(R.drawable.***等)加載的實例都共享一個共用的狀態(tài)贪磺,如果你更改一個實例的狀態(tài),其余的實例 都會接收到相同的通知诅愚,相同控件共享ColorState(ColorDrawable)寒锚,當你改變其Alpha值時,其他控件也會獲取到相同值违孝;
- 解決辦法:View.getBackground().mutate().setAlpha(i)刹前。
2、Mac上讓隱藏文件可見和不可見的方法
-
顯示:
- defaults write com.apple.finder AppleShowAllFiles TRUE
- killall Finder
-
隱藏:
- defaults write com.apple.finder AppleShowAllFiles FALSE
- killall Finder
3雌桑、常用正則表達式
- 驗證驗證車牌號(內(nèi)地):"[\u4e00-\u9fa5]{1}[A-Z]{1}[A-Z0-9]{5}"
- 驗收手機喇喉、座機號:"^(0[0-9]{2,3}-)?\d{6,8})|(1[2-9]\d{9}"
- 驗證手機號:"^((13[0-9])|(15[0-9])|(17[0-9])|(18[0-9]))\d{8}$"
- 驗證郵箱 :"^([a-z0-9A-Z]+[-|_|.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?.)+[a-zA-Z]{2,}$"
- 驗證8-12位必須包含數(shù)字、字母的密碼 :"(?![0-9]*$)(?![a-zA-Z]*$)^([a-zA-Z0-9]{8,12})$"
- 驗證門牌號:(1-4-1703):"(\d{1,6}\-){2}\d{1,6}"
- 驗證身份證號碼:"(\d{15}$)|(\d{17}([0-9]|X)$)"
4校坑、RxJava學習筆記
-
Scheduler
在RxJava 中拣技,Scheduler ——調(diào)度器千诬,相當于線程控制器,RxJava 通過它來指定每一段代碼應(yīng)該運行在什么樣的線程膏斤,使用subscribeOn() 和 observeOn()兩個方法來對線程進行控制徐绑。RxJava 已經(jīng)內(nèi)置了幾個 Scheduler ,它們已經(jīng)適合大多數(shù)的使用場景:
- Schedulers.immediate(): 直接在當前線程運行莫辨,相當于不指定線程傲茄。這是默認的 Scheduler。
- Schedulers.newThread(): 總是啟用新線程沮榜,并在新線程執(zhí)行操作烫幕。
- Schedulers.io(): I/O 操作(讀寫文件、讀寫數(shù)據(jù)庫敞映、網(wǎng)絡(luò)信息交互等)所使用的 Scheduler。行為模式和 newThread() 差不多磷斧,區(qū)別在于 io() 的內(nèi)部實現(xiàn)是是用一個無數(shù)量上限的線程池振愿,可以重用空閑的線程,因此多數(shù)情況下 io() 比 newThread() 更有效率弛饭。不要把計算工作放在 io() 中冕末,可以避免創(chuàng)建不必要的線程。
- Schedulers.computation(): 計算所使用的 Scheduler侣颂。這個計算指的是 CPU 密集型計算档桃,即不會被 I/O 等操作限制性能的操作,例如圖形的計算憔晒。這個 Scheduler 使用的固定的線程池藻肄,大小為 CPU 核數(shù)。不要把 I/O 操作放在 computation() 中拒担,否則 I/O 操作的等待時間會浪費 CPU嘹屯。
- AndroidSchedulers.mainThread():指定的操作將在 Android 主線程運行。
5从撼、修改.gitignore后無效的解決辦法
- git rm -r --cached .
- git add .
- git commit -m 'update .gitignore'
6州弟、Android Studio中獲取SHA1或MD5的方法
- keytool -v -list -keystore keystore.jks
- “-v” 參數(shù),不然只能看到SHA1低零,沒有MD5