原创 ListView加CheckBox簡單實現批量刪除

前段時間要做一個批量刪除的功能,身爲初學者的我,開始嘗試做這個功能,但是出現了以下3個情況: checkbox被勾選上後,listview滑走再滑回來,本來應該被選中的checkbox成了未選中狀態 連續勾選後,刪除的不完整,比

原创 Android如何高效加載大圖

今天的學習目標是如何高效的加載大圖 衆所周知,android 在加載數量很多的大圖的時候,容易引起OOM異常(內存溢出),這是爲什麼呢?是因爲現在的手機圖片的分辨率越來越高,圖片越來越多,而系統給單個應用施加了內存限制,比如16

原创 抽屜側滑菜單Drawerlayout-基本使用方法

前幾天一直想做一個側滑菜單的效果,在網上查了一些資料後,決定用drawerlayout來實現這個功能,不說廢話,先上圖: 效果圖: 這其實是一個很簡單的效果,主頁一個按鈕,點擊後菜單會從左側划過來,當然,用手指從左側邊緣劃

原创 VideoView加載閃黑屏

最近在開發中遇到了一個問題:從A頁面跳到B頁面,B頁面包含VideoView,然後屏幕會快速的閃過一個黑屏,很影響用戶體驗度。 情境: 新人Android開發者小明正在開發公司的項目,項目裏面包含的有視頻播放,但是遇到

原创 N個例子讓你徹底理解java接口回調

說到接口回調,對於初學者來說,理解是真的難啊,不過沒有關係,看完本篇文章,你馬上就能理解接口回調啦! 概念 爲了便於讓大家都能無痛理解到接口回調,我決定用N個白話概念來給大家講解,總有一種解說方式適合你: 解說1:A讓B去做一件耗

原创 從矩陣中取出子矩陣

探索一個簡單的算法,從矩陣中取出一個小矩陣應該怎樣實現。 具體什麼意思呢,比方說我們現在有一個int型的數組,將其用矩陣的形式寫出來就會長這個樣子: int[] arr = {1,2,3,4,5,6,7,8,9,10,11,12,

原创 android視頻播放 vitamio的簡單運用

今天主要是講如何簡單的播放視頻,我們要用到的一個框架——vitamio,這個框架及其強大,播放視頻,直播神馬都可以。話不多說,我們來看看今天的任務,今天要教大家的是,vitamio的基礎用法。先上效果圖: 效果解析 1.

原创 Android聊天界面實現方式

最近心血來潮,打算實現一個很久之前就想實現的一個界面,就是聊天界面,當時覺得好高大上啊,完全不會啊,不過最近不小心找到了方法。 效果圖 本來是想上傳一張動態圖的,但是不知道怎麼回事,半天傳不上去,只好上傳一張靜態圖了。 效果解析

原创 仿網易新聞分類刷新

最近做自己的一些小東西的時候,需要用到類似網易新聞的那種分類界面,就是上面一個tab選項卡,下面一個viewpager,可以滑動的,而且無論是滑動到哪一頁,都可以下拉刷新當前頁面。想了半天后,總算是實現了,以下是效果圖。 效果圖

原创 從invalidate分析view繪製流程

1 前言 關於view的繪製流程,現在網上一查,就會直接告訴你,view的繪製流程是先onMeasure,然後onLayout,在最後onDraw,沒錯,繪製流程確實也是這樣。不過我們今天要討論的話題主要是知道這個流程是怎麼來的,然後

原创 JVM內存區域

參考:深入理解Java虛擬機(第2版) 簡單概述JVM有哪些內存區域,以及他們的功能 主要是七個區域: 程序計數器 Java虛擬機棧 本地方法棧 Java堆 方法區 運行時常量池 直接內存 1.程序計數器 程序計數器是一塊較小

原创 戰略性瞭解WindowManager

什麼是戰略性瞭解:知其然,無需知其所以然,也就是知道整體結構框架即可,不追根內部具體實現。 注:文章前面會探索API 14的源碼,後面會探索API 28的源碼 WindowManager直譯過來叫做窗口管理者,用了這麼多年Win

原创 Android Studio上的代碼摺疊

摺疊格式: // region [描述] 各種代碼 // endregion 如圖: IDEA系列的軟件估計都有這個功能

原创 setContentView的時候,到底發生了什麼

注:文中所有代碼均來源於API 27;文中代碼經過大量省略,若要知道詳情,還需進入源碼中細細探索。 前言 關於setContentView方法,想必大家對這個方法既熟悉又陌生,熟悉的原因是因爲基本上我們每創建一個activity,

原创 從源碼角度深入探尋Scroller的奧祕

前言 給未使用過scroller的人說的話: Scroller是一個跟滑動有關的類(大家都這麼說(大家:我不承認!😱)),很多滑動的操作可以藉助Scroller來完成,而且很多有滑動效果的框架啊什麼的,都是藉助他來完成的,所以如果你們