原创 實現可縮放的馬賽克控件---Android

需求:實現可以縮放、移動和打馬賽克的控件。 由於之前對圖片處理的經驗很缺乏,所以拿到需求的第一步我就從github上面找相關的項目。 然後,就找到了這個項目:ProMosaic  這個項目有兩個痛點: 1.加載圖片未處理尺寸,當尺寸過大時

原创 簡析百度地圖點聚合功能----ClusterManager類

在百度地圖提供的Demo中,已經提供了一個很簡單的點聚合的demo程序,主要用到的類就是ClusterManager<T>用來管理各個Marker的聚合, 另外就添加了一個實現了ClusterItem接口的MyItem,用來管理各個Mar

原创 Handler如何移除Message

問題: 1.removeMessage(what)函數是否只能移除對應what值的Message? 2.對於Delayed發送的Message,能否提前remove? 代碼測試: package javine.k.testhandler

原创 ScaleGestureDetector接收雙擊手勢問題

今天遇到這麼一個問題:使用ScaleGestureDetector來監聽手勢操作,本意是想實現雙指手勢縮放的功能。 但在測試中,發現一個“Bug”—— 單指雙擊不擡起,然後移動手指,發現圖片也在縮放! 雖然這個功能很酷炫,但不是我要的效果

原创 RemoteService之AIDL進程間通信 ---基於AndroidStudio

最近項目中碰到個問題,應用退出之後(通過調用System.exit(0)),彈出的Toast很久的不消失。 原因是項目中使用了環信的SDK,其中有個處理後臺推送的Service環信專門爲其加了個so文件,目的是爲了防止Service被殺死

原创 ListView 處理Item的選中狀態(checked)

在開發篩選條件相關的界面時,會用到如下界面,左欄選擇一項,右邊跳出子欄繼續選擇。如圖: 實現起來也不難:       1. 建立一個Activity,layout中包含兩個FrameLayout 2.建立一個fragment,佈局直接

原创 細讀百度地圖點聚合源碼(下)---Renderer類解析

上一篇文章分析了ClusterMananger的整體結構和核心算法 細讀百度地圖點聚合源碼(上),此文是接着上一篇來的。 在本文中,我們將學習如何在UI線程中做大量的操作,並且不會造成界面卡頓。 上次我們講到ClusterManager類

原创 ViewPager源碼分析

1.問題 由於Android Framework源碼很龐大,所以讀源碼必須帶着問題來讀!沒有問題,創造問題再來讀!否則很容易迷失在無數的方法與屬性之中,最後無功而返。 那麼,關於ViewPager有什麼問題呢? 1. setOffsr

原创 從Observer模式的角度分析AdapterView源碼

對於程序員來說,不過你屬於哪個品種(c++,java,js,c#...)這些特定的語言都是在不斷更迭的,熟悉的SDK也總有一天會被淘汰掉,所以在我看來,真正能屬於自己的就是那些融入你的思維中的東西,例如設計模式。 這也是我下決心研究設計模

原创 一步一步帶你寫一個dagger2的Demo

1.MVP模式簡介 我們的目標是實現MVP模式來開發我們的應用,那首先得知道什麼是MVP模式。下面這篇文章講述得通俗易懂,非常適合新手學習。MVP模式簡單易懂介紹 這裏簡單講一下, M ----  model,即數據層 V ----  v

原创 深入解析Android Design包——NestedScroll

Android開發中滑動衝突的問題一直是編寫界面時的一個老大難問題,比如ScrollView+ListView的嵌套基本是沒辦法實現滑動的自然切換的(參考滑動衝突研究),可能導致UI絞盡腦汁想出來的創意開發人員沒辦法實現。爲此,Googl

原创 深入解析Android Design包——Behavior

上一篇深入解析AndroidDesign包——NestedScroll 已經說過了,在AndroidDesign包中主要有兩個核心概念:一是NestedScroll,另一個就是Behavior。 相比於NestedScroll這個概念來

原创 細讀百度地圖點聚合源碼(上)

之前在項目中需要用到百度地圖的點聚合,看了百度提供的demo之後,稍微讀了一些源碼就能達到需求了,所以並未深入解讀源碼。 最近有空就把百度實現點聚合的源碼從裏到外仔細研究了一遍受益良多,在此分享一下。 爲了方便研究我把百度demo中點聚合

原创 LayoutInflater如何加載佈局?

對於有一定Android開發經驗的同學來說,一定使用過LayoutInflater.inflater()來加載佈局文件,但並不一定去深究過它的原理,比如 1.LayoutInflater爲什麼可以加載layout文件? 2.加載layo

原创 如何實現ListView Item的動畫?

本文是通過分析github上的cypressious-AnimationListView控件來講述如何給ListView的Item添加動畫效果。先看看它的效果吧 圖片來自cypressious的github項目示例圖 這個Animat