原创 OkHttp3 源碼閱讀

版本是3.14.9 同步請求 OkHttpClient okHttpClient = new OkHttpClient(); Request request = new Request.Builder().url("http:

原创 Java 中靜態代理與動態代理

靜態代理 代理接口 // 代理接口 public abstract class Subject { // 代理類與目標類共同實現的方法 protected abstract void operation(); }

原创 Android PackerNg V2多渠道打包使用摘要

項目地址 配置 項目build.gradle配置 dependencies { classpath 'com.android.tools.build:gradle:3.5.2' classpath 'com

原创 Android Fragment回退棧實現思路

Demo地址 場景 Activity負責4個Fragment展示 Activity底部有一個導航欄 分析 初始化 @Override protected void onCreate(Bundle savedInstan

原创 Android CircleImageView 源碼閱讀

CircleImageView 概述 initializeBitmap():初始化Bitmap,尺寸等操作,不對CircleImageView的尺寸做操作. updateDimensions():對CircleImageVi

原创 Android viewBinding使用和注意事項

概述 dataBinding雙向綁定,viewBinding單向綁定. 它用來替代findViewById(),可以看作輕量級的dataBinding. Kotlin中雖有synthetic特性,方便獲取控件引用.但這個特性作用

原创 Android 自定義RecyclerView Item頭部懸浮吸頂

控件地址 概述 自定義了一個FrameLayout,引入條目的頭部佈局加入到自定義FrameLayout中. 將RecyclerView加入FrameLayout 條目頭部View的Alpha動畫以及設置透明和不透明這個時機

原创 Android 自定義ViewPager

項目地址 概述 處理滑動到左邊界和右邊界時,不允許滑動。 頁面滑動一半回彈,滑動一半以上自動切換下一界面。 當頁面內存在ScrollView這類子控件,事件要正常分發,不允許自定義ViewPager攔截事件。 回彈與切換動畫

原创 Android 自定義輪播圖

輪播圖地址 概述 寫一個佈局,其中有ViewPager,TextView,LinearLayout. ViewPager:用來承載圖片 TextView:用來展示文字描述 LinearLayout:用來展示指示器 自定

原创 Profiler 檢測耗時方法與內存泄漏

Android Studio 檢測耗時方法 從Application中開始函數跟蹤 在清單文件中加入權限,必須要權限6.0以上. <uses-permission android:name="android.permissio

原创 Android 獲取軟鍵盤和狀態欄以及底部導航欄高度

windowSoftInputMode屬性釋義 adjustPan屬性:假如鍵盤彈出後遮擋住了EditText控件,該控件獲取焦點之後,整個DecorView會向上整體移動(也就是標題欄和內容欄),直到EditText控件出現在

原创 Android DialogUtil 源碼閱讀

DialogUtil項目地址 這個項目將近1k star,項目快一年沒更新了. 簡要流程分析 StyledDialog.buildLoading("加載中...")流程梳理. 主要是用來創建ConfigBean對象, 該對象

原创 ViewPager+Fragment組合與HorizontalScrollVIew滑動衝突解決

Demo地址 重寫HorizontalScrollView中onTouchEvent(),也可以重寫它的dispatchTouchEvent(),但是重寫dispatchTouchEvent()最後發現ViewPager頁面

原创 Android Measure探索

《Android內核剖析》,《Android開發藝術探索》 MeasureSpec介紹 將SpecMode與SpecSize打包得到int值,MeasureSpec也提供瞭解包方法來分別獲取SpecMode與SpecSiz

原创 Android View基礎知識總結

《Android開發者藝術》 View的位置參數 View初始位置主要由左上角與右下角初始座標決定(mLeft,mRight,mTop,mBottom),單位是像素.該座標系的座標原點爲View父容器的左上角. getLef