原创 Android Kotlin 開發需知

變量延遲加載 // 某些成員變量在聲明時無法初始化,且不想使用可空類型(也就是帶?的類型)。可使用 lateinit 和 by lazy // 不知道具體值,後面再賦值使用;所以必須var lateinit var

原创 Kotlin Coroutines協程入門

Kotlin協程 和 協程 是兩個東東,這裏只說Kotlin協程; Kotlin協程是一個線程框架; 需要額外引入: implementation "org.jetbrains.kotlinx:kotlinx-coroutin

原创 Android 自定義View----多點觸摸反饋

多點觸摸和單點不同,只要瞭解每個觸摸點的屬性即可 public class PaintingView extends View { Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG

原创 TextInputLayout輸入框控件的懸浮標籤

TextInputLayout也是5.0以後的效果,想要使用同樣需要在build中配置: dependencies { compile 'com.android.support:design:23.3.0' }TextInpu

原创 Android 自定義View----文字繪製(文字居中自動換行)

c 使用canvas繪製文字非常簡單,但文字繪製根據baseLine無法劇中,網上說法很多,有點麻煩,這裏用到一個非常簡單的辦法,先來看下文字的繪製參考線 圖片直接百度複製的,不是自己畫的,有時間自己畫一個; 文字上下居中其實很簡單

原创 Android性能優化:Layout佈局優化小建議 DDMS

頁面直接和用戶交互,如果頁面出現卡頓,用戶體驗會瞬間下降; 當然,頁面卡頓並非完全是Laout的問題,今天只說Layout優化的一點點建議; 1.瞭解DDMS,使用Hierarchy View 監測頁面 2.使用Lint tool監測佈

原创 AndroidStudio 生成jar 和 aar(混淆)

首先看下效果圖,左邊是封裝之前的代碼,右邊是生成混淆jar包 供"兄弟公司"使用.  目前最常見的有*.so,*.jar,*.aar三種(.so一般C或者C++使用,我們說下後兩者)  做之前感覺有點神祕且高大上,其實很簡單,大致分爲四

原创 Android App加載圖片內存空間計算

圖片內存 圖片佔用內存空間大小都很熟悉:分辨率 * 像素點大小 圖片佔用內存空間大小和 圖片分辨率,像素點大小 有關 1.圖片格式,圖片文件大小和佔用內存空間大小無關 png / jpg 只是這張圖片的容器,它們經過相對應的壓縮算法將原

原创 Android 自定義View----離屏緩衝和圖像混合模式(圓形頭像)

這裏主要了解下離屏緩衝和圖像混合模式,可能在自定義view的時候會用到,繪製的內容也非常簡單,一個簡單的圓形頭像 繪製大概分爲5步: 1,開啓離屏緩衝 2,繪製一個圓 3,設置圖像混合模式   https://www.cnblogs.c

原创 Android 自定義View----PathEffect(儀表盤,餅圖)

通過這個view大致瞭解了幾個方法,可通過PathEffect給path設置樣式; 大致分三步: 第一步:通過canvas.drawArc()方法先把圓弧畫出來 第二步:畫刻度(這裏通過給畫筆設置PathEffect的方法實現刻度繪製,

原创 Android性能優化:ANR異常處理

ANR(Application Not Responding)應用程序無響應 導致ANR異常的原因很多: InputDispatching Timeout:5秒內無法響應屏幕觸摸事件或鍵盤輸入事件 BroadcastQueue Time

原创 Android性能優化:Apk 瘦身之路

想要變瘦必須知道“肉”都從哪裏來的, Buidl > Analyze Apk > 選擇apk包 (查看apk體積結構)(原包25M+,優化後15M-) 其實apk瘦身很簡單(把問題簡單化,先入門),主要從三方面入手: 1:資源 2:圖片

原创 CoordinatorLayout:AppBarLayout應用標題欄容器

首先稍微說下CoordinatorLayout(協調者佈局)實現了多種Material Design中提到的滾動效果,把CoordinatorLayout作爲根佈局容器, 其子控件可以不用寫動畫相關的代碼就能產生動畫; MD提供的主要子

原创 Android 自定義View----屬性動畫(如何在自定義view中添加動畫)

自定義view難免會接觸到動畫,不然很多效果做不出來,動畫分爲幾種,今天主要用到的是屬性動畫; 上面這個效果分上下兩部分完成,在繪製的時候先繪製下半部分,具體代碼如下,裏面有詳細註釋: public class CameraAnima

原创 Android 自定義View----觸摸反饋

佈局,繪製,觸摸反饋;想要實現和用戶手勢交互,必須瞭解觸摸反饋,簡述下: dispatchTouchEvent:分發事件 onInterceptTouchEvent:攔截事件 onTouchEvent:消費事件 AAA------d