原创 onSaveInstanceState、onRestoreInstanceState、onNewIntent調用時機

onSaveInstanceState是在Activity還有機會被顯示的時候被調用(比如從ActivityA打開另外一個ActivityB,或者切換橫豎屏導致ActivityA被銷燬重建),在Activity被正常銷燬的時候不會被調用(

原创 ViewPager+Fragment實現懶加載

懶加載,就是滑動Viewpager的過程中,當fragment顯示的時候纔去加載數據,但是由於ViewPager的預加載機制,會提前初始化左右兩邊的fragment,那麼,要想實現懶加載,就需要一些騷操作了 騷一、既然Viewpager有

原创 關於開源框架SuperRecyclerView瀑布流卡頓問題

今天寫項目用SuperRecyclerView實現瀑布流效果的時候,發現了一個重大bug,當向下滑動瀑布流的時候,一直顯示加載更多,同時頁面卡的要命(差點摔手機,後來想想自己窮b一個,然後就忍了),向上滑動的時候也是同樣,然後我就開始找是

原创 Java仿windows記事本較完整版

我是大四生物專業的學生,但是對計算機專業很感興趣,最近學了Java編程,就編了仿windows系統下的記事本練練手,這個記事本實現了windows系統下的大部分功能,只有很少的部分沒有實現,比如撤銷命令的不完美,這是本人的能力有限,還有那

原创 \r與\n有什麼區別

'\r'是回車,'\n'是換行,前者使光標到行首,後者使光標下移一格。通常用的Enter是兩個加起來。下面轉一篇文章。 回車和換行 今天,我總算搞清楚“回車”(carriage return)和“換行”(line feed)這兩個概念的來

原创 理解Window和WindowManager

首先我們來看下如果通過WindowManager添加一個Window: Button mFloatingButton = new Button(this); mFloatingButton.setText("butt

原创 android消息機制

android消息機制主要指的是Handler的運行機制以及Handler所附帶的MessageQueue和Loop的工作過程,這三者實際上是一體的,只不過我們平時開發過程中接觸比較多的是Handler而已。Handler的工作主要是將一

原创 Binder機制

直觀來講,Binder是Android中的一個類,它實現了IBinder接口。從IPC角度來看,Binder是Android中一種跨進程通信方式,Binder還可以理解爲一種虛擬的物理設備,它的設備驅動是/dev/binder,該通信方式

原创 Glide源碼分析

前言 對於圖片加載框架,我們比較熟悉的有UniversalImageLoader,Glide,Picassl和Facebook的fresco,對於Glide和Picasso,他們有太多的相似點,對於他們的區別可以參考http://www.

原创 Glide4用法詳解

開始 首先在app/build.gradle文件中增加如下依賴: dependencies { implementation 'com.github.bumptech.glide:glide:4.8.0' annotat

原创 Android屬性動畫源碼分析

這篇文章主要講解一些屬性動畫的源碼,通過此篇文章能夠幫助我們更好的理解和使用屬性動畫。 1、基本使用 我們先看下屬性的動畫的基本使用,並依此爲入口,逐步分析屬性動畫的源碼: ObjectAnimator .ofInt(t

原创 設計模式之禪筆記——建造者模式

一、建造者模式的定義 定義如下: Separate the construction of a complex object from its representation so that the same construction pr

原创 設計模式之禪筆記——策略模式

一、策略模式的定義策略模式是一種比較簡單的模式,也叫做政策模式,其定義如下:Define a family of algorithms,encapsulate each one ,and make them interchangeable

原创 View的繪製流程及源碼分析

這篇文章主要講解的是View的繪製流程以及源碼分析,講解這些的主要目的是爲了能夠在理解View的工作原理上更好的自定義View。 首先講解一下佈局文件是如何展現到屏幕上的。 一、佈局文件是如何呈現在屏幕上的 我們從Activity的set

原创 View的事件傳遞原理和源碼分析

本文將將接View的事件傳遞機制,通過本文的學習,將能夠更好的自定義出我們想要的View。 一、點擊事件的傳遞規則 在講解源碼之前,我們首先介紹一下我們比較熟知的三個方法。 public boolean dispatchTouchEven