原创 ListView 覆蓋圖片一部分,下拉顯示全部。類似百度音樂專輯界面

界面佈局使用FrameLayout,ImageView在最底層,給listview設置一個空白headerview,顯示一部分imageview,下拉listview顯示全部imageview 佈局文件: <?xml version="1

原创 寬度全屏SeekBar實現

我們都知道android的seekbar左右兩邊都是有留一些空間。http:// 現在項目要求寬度全屏的seekbar。 分析源碼 得知 seekbar --》AbsSeekar--》ProgressSeekar 繼承關係。 用idea

原创 ListView addHeaderView 報錯的解決辦法

在添加listview的 addheader方法時報錯如下: android.widget.RelativeLayout$LayoutParams cannot be cast to android.widget.AbsListView$

原创 Android應用性能優化之使用SparseArray替代HashMap

一、概述 最近在項目中看到了SparseArray,好奇研究了下。 SparseArray是Android框架獨有的類,在標準的JDK中不存在這個類。它要比 HashMap 節省內存,某些情況下比HashMap性能更好,按照官方問答的解釋

原创 Leetcode Longest Palindromic Substring(最長迴文字串)

Longest Palindromic Substring Given a string S, find the longest palindromic substring in S. You may assume that the m

原创 Android高仿微信微博多圖展示

NineGridLayout 1.簡介 這是一個用於實現像微信朋友圈和微博的類似的九宮格圖片展示控件,通過自定義viewgroup實現,使用方便。 多圖根據屏幕適配,單張圖片時需要自己指定圖片的寬高; 2.使用方法 引用: com

原创 Android RecyclerView 的點擊事件

一、概述 隨着Android L版本的發佈,RecyclerView已經逐漸地取代了ListView,用來顯示較多的數據集,RecyclerView相比ListView在性能上有了大幅度的提升,可以說RecyclerView是AbsLis

原创 Android 適配toolbar後windowSoftInputMode="adjustResize" 不生效

一、發現問題 項目中適配了Android最新的MaterialDesign,其中最主要修改的一個就是將actionbar 替換成了toolbar,如果對toolbar沒有了解的話可以參考 這篇文章 適配toolbar,請看 這篇文章 由於

原创 Android內存泄露抓取工具leakcanary

引言 “A small leak will sink a great ship.” - Benjamin Franklin 概述 某些對象的生命週期有限,當它們的工作完成以後,將會被GC回收。如果一個對象在其生命週期結束以後仍在內存中存在

原创 使用lint工具優化Android代碼

一、概述 Android lint工具是一個靜態的代碼分析工具,用來檢查代碼中潛在的問題並且提高代碼的正確性,安全性,可用性,國際化和性能。 確保代碼中沒有結構性的錯誤,發現潛在的問題。Android-Lint提供了命令行方式執行,還

原创 Andorid Volley框架加載圖片OOM問題分析

一、Volley框架簡介 在這之前,我們在程序中需要和網絡通信的時候,大體使用的東西莫過於AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient(Apache)等,Google 在20

原创 Android 彈簧動畫效果

一、概述 Rebound 通過胡克定律,實現的一個類似“彈簧”動畫效果的第三方工具包,由FaceBook退出,於2013年10月正式發佈,旨在解決笨重、緩慢的傳統移動網絡界面。 先上幾張效果圖:                  

原创 Android高效加載圖片,有效避免程序OOM

我們在編寫Android程序的時候經常要用到許多圖片,不同圖片總是會有不同的形狀、不同的大小,但在大多數情況下,這些圖片都會大於我們程序所需要的大小。比如說系統圖片庫裏展示的圖片大都是用手機攝像頭拍出來的,這些圖片的分辨率會比我們手機屏

原创 Android 橫向帶有吸附效果的橫向拖動控件(效果同縱向下拉刷新ListView)

先上一張效果圖 中間的橫向拖動就是我們要做的效果。 一、實現思路 仔細觀察不難發現,該拖動view與listview的下拉刷新的效果很類似,手指拖動的時候顯示隱藏的view,手指放開自動回彈。只不過區別就是一個橫向一個縱向 下拉刷新的

原创 Mac Android Genymotion unable create virtual device

Mac 安裝Genymotion 需要安裝VirtualBox ,全部安裝完後創建genymotion device 點擊ADD後不能顯示device列表,測試可能是由於VirtualBox的網絡設置原因導致genymotion不能連接網