原创 ViewPager.PageTransformer 的 position 分析

文章目錄前言ViewPager.PageTransformer 的定義理解 position小結 position 的變化規律參考 前言 PageTransformer 是 ViewPager 內部定義的接口,實現該接口並通過 s

原创 FlowLayout(流式佈局)的實現

文章目錄前言代碼實現(Flowlayout)使用方法1. 編寫 item 佈局2. 編寫 Adapter3. 主活動中使用 FlowLayout參考 前言 最近在做的項目決定用流式佈局來展示歷史記錄,剛好自己也想學習自定義 Vie

原创 Android 利用 shape 實現背景顏色漸變

通過 shape 中的 gradient 可以實現顏色漸變,例如: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.andro

原创 內聯函數let、also、with、run、apply的用法

let 在函數體內使用 it 代替調用者訪問其公有的屬性和方法 val person = Person("fzh", 22) person.let { print("name = ${it.na

原创 安卓高斯模糊的實現

文章目錄前言使用 RenderScript 實現高斯模糊RenderScript 配合 Glide 實現高斯模糊參考 前言 在 Android 中,實現高斯模糊效果的主要方式有: Java:FastBlur.java,由於在 J

原创 馬拉車(Manacher)算法的說明和實現(使用 Java 語言)

簡介 瞭解馬拉車算法的作用前,先要知道迴文字符串的概念。迴文字符串是指無論正着讀還是反着讀,結果都是一樣的字符串。例如 aba、abba 都是迴文字符串。 馬拉車算法就是用來求一個字符串中的最長迴文子串。例如 LeetCode 的

原创 冒泡排序及其優化(三種優化)

普通的冒泡排序 public void bubbleSort(int[] a) { for (int i = 0; i < a.length - 1; i++) { // 外層控制循環次數

原创 手把手教你畫 UML 類圖

文章目錄類(接口)的表示類的表示例子接口的表示例子關係繼承關係接口關係關聯關係聚合關係組合關係依賴關係小結參考 類(接口)的表示 類的表示 在 UML 類圖中,一個矩形代表一個類,如圖: 矩形分爲三部分: 第一部分爲類名,如果用

原创 仿掌閱實現 TabLayout 切換時的字體和 Indicator 動畫

文章目錄前言分析實現字體縮放動畫實現 Indicator 的長度變化動畫一、準備工作二、讓 TextView 撐滿 TabView三、實現滑動時 Indicator 的動畫效果寫在最後完整 demo 地址參考 前言 最近在做的一個

原创 Android 5.0 以上將圖片延伸到狀態欄的方法

小米 9.0 親測有效 首先附上效果: 實現方式: 在 styles.xml 中設置相應 Activity的主題: <style name="AppTheme" parent="Theme.AppCompat.Lig

原创 安卓 SQLite 數據庫刪除前 n 條記錄

刪除前 n 條記錄對應的 SQL 語句是: delete from table where id in(select id from table order by id limit n) 其中 table 對應表名,id 表示自增

原创 Android 連接 MySQL 並進行基本的增刪改查操作

準備工作 導入 jar 包 下載 mysql-connector-java 包(喫過虧的表示推薦 5.x.x 版本,8.x.x 版本會出現挺多問題的):mysql-connector-java 下載地址 打開 AS,將 jar

原创 RecyclerView 實現不固定列數的網格佈局

RecyclerView 實現網格佈局是通過設置 GridLayoutManager 來實現的,通常是這樣設置的: mRecyclerView.setLayoutManager(new GridLayoutManager(

原创 TabLayout去除點擊時的陰影效果

一開始看到一些文章說設置屬性app:tabBackground="@android:color/transparent",但我試了之後,發現沒有效果。 後來受到這篇文章的啓發,覺得應該是設置ripple,所以設置了屬性app:ta

原创 記一次byte[]和Bitmap的轉換問題

在利用Socket傳輸圖片的時候,用到了byte[]和Bitmap的相互轉換。 問題是這樣的:首先將自己的Bitmap轉換爲byte[]傳給對方,而對方在收到byte[]後轉換爲Bitmap,但是明明自己的Bitmap不爲null