第三周

一、自定義控件


1.px、dp和sp的關(guān)系

px:像素點(diǎn),在web前段會(huì)用得比較多,但是對(duì)于移動(dòng)端盡量少用,因?yàn)槭謾C(jī)的分辨率是不同的;

dp:跟像素密度有關(guān),因?yàn)槊芏鹊牟煌瑫?huì)導(dǎo)致相同的px,而dp不同的情況;

sp:和dp類似,但是是用來(lái)修飾文字的;

2.Inflater的基本知識(shí)

對(duì)于一個(gè)沒(méi)有被載入或者想要?jiǎng)討B(tài)載入的界面,都需要使用LayoutInflater.inflate()來(lái)載入;而對(duì)于一個(gè)已經(jīng)加載了的界面,就可以使用Activity.findViewById()來(lái)獲得其中的界面元素。

LayoutInflater是一個(gè)抽象類,public abstract class LayoutInflater extends Objects;

獲得LayouInflater的三種方式:

1)LayoutInflater inflater = getLayoutInflater();

2)LayoutInflater localinflater =(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

3.)LayoutInflater inflater = LayoutInflater.from(context);

我們主要使用的還是第二種方式,因?yàn)槿N方式中歸根結(jié)底,都是來(lái)自第二種。

3.View的工作過(guò)程

自定義控件的流程一般是按照下面的方法進(jìn)行的:

1)自定義view的屬性,創(chuàng)建attrs.xml,創(chuàng)建自己想要的屬性;

2)在view的構(gòu)造方法中獲取我們自定義的控件;

3)重寫onMesure(),以確定大小;

4)重寫onLayout(),以確定位置;

5)重寫onDraw(),以繪制圖形;

6)invalidate,刷新。

自定義控件的三種方式:

通過(guò)繼承已有的控件來(lái)自定義控件

通過(guò)繼承一個(gè)布局文件來(lái)實(shí)現(xiàn)自定義控件

通過(guò)繼承View類來(lái)實(shí)現(xiàn)自定義控件

二、Fragment的學(xué)習(xí)


1.什么是fragment?

Fragment是Activity中的一部分

多個(gè)Fragment可以組合到一個(gè)Activity中

多個(gè)Activity可以重用一個(gè)Fragment

總結(jié):Fragment相當(dāng)于模塊化的一段activity,具有自己的生命周期,接受自己的事件??梢栽赼ctivity運(yùn)行時(shí)被添加或刪除

2.Fragment的生命周期

通過(guò)圖表的方式表示:

在上面的流程圖中,有很多地方和Activity的生命周期較為類似,但是也有很多不同之處。其中比較重要的是onCreateView。

三、Handler的學(xué)習(xí)


1.多線程和異步

多線程是指從軟件或者硬件上實(shí)現(xiàn)多個(gè)線程并發(fā)執(zhí)行的技術(shù),一個(gè)進(jìn)程中有多個(gè)任務(wù),每個(gè)任務(wù)就是一個(gè)線程,當(dāng)一起執(zhí)行的時(shí)候就需要異步執(zhí)行。

2.Handler的基本概念

Handler的主要作用是用來(lái)處理異步的消息,可以用來(lái)傳遞Message和Runnable的對(duì)象

3.Looper

消息泵,是消息隊(duì)列(Message queue)的管理者,每一個(gè)looper對(duì)象和一個(gè)線程關(guān)聯(lián),looper負(fù)責(zé)取出消息,然后交給Handler處理。

4.Message

Message的主要方法如下:

obtainMessage()取得消息

sendMessage() 發(fā)送

handlerMessage() 處理消息

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 自定義控件 dp、sp和px的愛(ài)與糾纏 是什么? px:像素點(diǎn) dp:與像素密度密切相關(guān)100px 200px s...
    timber_wu閱讀 307評(píng)論 0 0
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,171評(píng)論 25 708
  • Handler Handler 的功能 Handler 最常用的功能就是更新 UI。因?yàn)?Android 只能在主...
    Android_zhang閱讀 218評(píng)論 0 0
  • 多線程的概念 進(jìn)程 Process:是正在運(yùn)行程序的實(shí)例,是一個(gè)具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合的一次運(yùn)行活...
    Hysoka閱讀 290評(píng)論 0 0
  • 從拿到畢業(yè)證到現(xiàn)在,馬上要一年了吧? 其實(shí)工作的時(shí)間遠(yuǎn)比拿畢業(yè)證要早,我是個(gè)不太安分的孩子,大二的時(shí)候就休學(xué)跑去工...
    聆歌閱讀 454評(píng)論 0 1

友情鏈接更多精彩內(nèi)容