原创 百分比佈局適配

文章目錄一、簡述二、google推薦的百分比佈局的使用方式三、實現3.1 創建屬性文件3.2 解析3.3 計算並設置百分比佈局四、使用五、完整代碼六、注意 一、簡述 百分比佈局適配,就是以父容器的尺寸作爲基準,在view的加載過程

原创 自定義像素適配

文章目錄一、簡述二、實現2.1 通過單例獲取當前設備的寬高2.2 獲取屏幕的寬高2.3 獲取狀態欄高度2.4 計算縮放比例三、使用四、完整代碼五、注意 一、簡述 自定義像素適配,就是以一個特定寬度尺寸的設備爲基準,在view的加載

原创 Material組件之MaterialApp、Scaffold、AppBar學習筆記

一、MaterialApp flutter的路由方式有兩種:新建路由和註冊路由 1.1 新建路由 Navigator.push負責將新建的路由添加到Navigator管理的route堆棧的棧頂,Navigator.pop用於彈出r

原创 黑白屏解決方案

文章目錄一、黑白屏原因二、解決方案2.1 修改AppTheme2.2 自定義AppTheme 一、黑白屏原因 在app啓動流程中,當系統加載並啓動app時,需要耗費一定的時間。即使這個時間非常短,但是用戶依舊會感覺點擊App圖標的

原创 修改系統density適配

文章目錄一、簡述二、追根溯源三、實現3.1 定義Density用於對系統類值的修改3.2 在MainActivity中調用3.3 處理應用程序關於字體大小的監聽3.4 如果多界面統一處理怎麼辦?3.4.1 BaseActivity

原创 9.0適配劉海屏

劉海屏適配,就是不讓劉海遮擋住應用程序,不影響應用程序的正常使用。 豎屏情況下,系統會根據劉海的高度,響應調整狀態欄的高度。因此,劉海對豎屏模式沒有影響。 可是橫屏模式下,劉海區域就會變成一條大黑邊。 Android 9.0系統中

原创 劉海屏適配

文章目錄一、簡述二、實現三、手機廠商的適配四、工具類 一、簡述 Android官方9.0劉海屏的適配策略是:如果非全屏模式(有狀態欄),則app不受劉海屏的影響,劉海屏的高就是狀態欄的高;如果全屏模式,app未適配劉海屏,系統會對

原创 EventBus源碼分析

文章目錄一、基本用法1.1 黏性事件二、源碼分析2.1 訂閱者註冊2.1.1 EventBus.getDefault()2.1.2 .register(this)2.2 post()2.3 unregister()2.4 post

原创 Glide源碼分析

文章目錄Glide的用法一、with二、load三、into3.1 buildImageViewTarget3.2 return的into方法3.2.1 將Request和View進行綁定,並保存到tag3.2.2 track當前

原创 Spark讀取Parquet格式的數據爲Dataframe

SaveMode指定文件保存時的模式: OverWrite 覆蓋 Append 追加 ErrorIfExists 如果存在就報錯 Ignore 如果存在就忽略 val spark = SparkSession.builder

原创 關於地圖中軌跡的平滑移動的實現

很多人應該都有類似的經歷,叫完車,想看看車離我還有多遠距離?但手機屏幕上的車不是一動不動,就是一跳一跳的漂移。 目前市面上大多產品“軌跡平滑移動”做的並不好。 市面上只有快的打車和一號專車實現了平滑移動,那麼這是怎麼做的呢? -

原创 View是如何被添加到屏幕窗口上的

文章目錄1 創建DecorView對象2 調用generateLayout(mDecor)創建mContentParent對象重點總結 關於View如何被添加到屏幕窗口上,大體有以下幾步: 1.創建頂層佈局容器DecorView

原创 數據算法——Spark二次排序

1.Scala實現: /** * 二次排序:超過2列(特徵) * 對比MR天氣案例,自定義一個key(包含讀到的一行數字),對key進行內部比較。 */ object SecondSort { def main(a

原创 類和對象

創建類: val修飾常量,不可修改。 var修飾變量,可修改。 類是可以傳參的!還得指定參數類型 類中的屬性默認有get。set方法,使用時直接賦值就好了 new的時候,除了方法不執行,其它的都執行 使用new Person(“h

原创 Canvas詳解

文章目錄一、概念二、常用api類型2.1 繪製集合圖形,文本,位圖等2.2 位置、形狀變換2.2.1 平移操作2.2.2 縮放操作2.2.3 旋轉操作2.2.4 傾斜操作2.2.5 切割2.2.6 矩陣2.3 狀態保存和恢復三、案