干熟妇在线视频午夜剧场一级A级|99成人香视频日本两性激情视频|久久 午夜福利无码精品人妻一区|热久久超碰精品精品少妇一区二区|五月天综合在线国产一区免费视频|亚洲成人中心热re久久99|亚洲国产怡红院丁香五月综合h|玖玖九久久久午夜射精视频

十二年專(zhuān)注于品牌網(wǎng)站建設(shè) 十余年專(zhuān)注于網(wǎng)站建設(shè)_小程序開(kāi)發(fā)_APP開(kāi)發(fā),低調(diào)、敢創(chuàng)新、有情懷!
南昌百恒網(wǎng)絡(luò)微信公眾號(hào) 掃一掃關(guān)注
小程序
tel-icon全國(guó)服務(wù)熱線:400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號(hào)
掃一掃打開(kāi)百恒網(wǎng)絡(luò)微信小程序

百恒網(wǎng)絡(luò)

南昌百恒網(wǎng)絡(luò)

定制視圖之創(chuàng)建BoxDrawingView視圖的方法

百恒網(wǎng)絡(luò) 2017-08-25 5392

Android自帶了很多優(yōu)秀的標(biāo)準(zhǔn)視圖與組件,但有時(shí)為追求獨(dú)特的應(yīng)用視覺(jué)效果,我們?nèi)孕鑴?chuàng)建定制視圖。 雖然定制視圖種類(lèi)繁多,但大致可以分為以下兩大類(lèi)別。

1、簡(jiǎn)單視圖:簡(jiǎn)單視圖內(nèi)部也可以很復(fù)雜;之所以歸為簡(jiǎn)單類(lèi)別,是因?yàn)楹?jiǎn)單視圖不包括子視圖。而且,簡(jiǎn)單視圖幾乎總是會(huì)執(zhí)行定制繪制。

2、聚合視圖:聚合視圖由其他視圖對(duì)象組成。聚合視圖通常管理著子視圖,但不負(fù)責(zé)執(zhí)行定制繪制。圖形繪制任務(wù)都委托給了各個(gè)子視圖。

3、創(chuàng)建定制視圖所需的三大步驟如下:

(1)選擇超類(lèi),對(duì)于簡(jiǎn)單定制視圖而言,View是個(gè)空白畫(huà)布,因此它作為超類(lèi)最常見(jiàn)。對(duì)于聚合定制視圖,我們應(yīng)選擇合適的超類(lèi)布局,比如FrameLayout。

(2)繼承選定的超類(lèi),并至少覆蓋一個(gè)超類(lèi)構(gòu)造方法。

(3)覆蓋其他關(guān)鍵方法,以定制視圖行為。

今天,南昌APP制作開(kāi)發(fā)公司小編為大家介紹一下定制視圖中創(chuàng)建 BoxDrawingView視圖的方法。

BoxDrawingView是個(gè)簡(jiǎn)單視圖,同時(shí)也是View的直接子類(lèi)。

以View為超類(lèi),新建BoxDrawingView類(lèi)。在BoxDrawingView.java中,添加兩個(gè)構(gòu)造方法。具體操作如下代碼所示。

初始的BoxDrawingView視圖類(lèi)(BoxDrawingView.java)

public class BoxDrawingView extends View {

// Used when creating the view in code

public BoxDrawingView(Context context) {

this(context, null);

}

// Used when inflating the view from XML

public BoxDrawingView(Context context, AttributeSet attrs) {

super(context, attrs);

}

}

這里之所以添加了兩個(gè)構(gòu)造方法,是因?yàn)橐晥D可從代碼或者布局文件實(shí)例化。從布局文件中實(shí)例化的視圖可收到一個(gè)AttributeSet實(shí)例,該實(shí)例包含了XML布局文件中指定的XML屬性。 即使不打算使用構(gòu)造方法,按習(xí)慣做法也應(yīng)添加它們。

有了定制視圖類(lèi),我們來(lái)更新fragment_drag_and_draw.xml布局文件以使用它,具體做法如下代碼所示。

在布局中添加BoxDrawingView(fragment_drag_and_draw.xml)

在布局中添加BoxDrawingView

注意,我們必須使用BoxDrawingView的全路徑類(lèi)名,這樣布局inflater才能夠找到它。布局 inflater解析布局XML文件,并按視圖定義創(chuàng)建View實(shí)例。如果元素名不是全路徑類(lèi)名,布局inflater 會(huì)轉(zhuǎn)而在android.view和android.widget包中尋找目標(biāo)。如果目標(biāo)視圖類(lèi)放置在其他包中,布局inflater將無(wú)法找到目標(biāo)并最終導(dǎo)致應(yīng)用崩潰。

因此,對(duì)于android.view和android.widget包以外的定制視圖類(lèi),必須指定它們的全路徑類(lèi)名。

運(yùn)行DragAndDraw應(yīng)用,一切正常的話,屏幕上會(huì)出現(xiàn)一個(gè)空視圖,如下圖所示。

運(yùn)行DragAndDraw應(yīng)用

未繪制的BoxDrawingView

接下來(lái),讓BoxDrawingView監(jiān)聽(tīng)觸摸事件,并實(shí)現(xiàn)在屏幕上繪制矩形框。

以上就是小編為大家介紹的關(guān)于在南昌APP開(kāi)發(fā)中創(chuàng)建 BoxDrawingView視圖的方法,其實(shí)方法很簡(jiǎn)單,估計(jì)大家看一遍就會(huì)了。不過(guò)如果還有哪些不太明白的地方也不用擔(dān)心,可隨時(shí)來(lái)電咨詢百恒網(wǎng)絡(luò),我們專(zhuān)業(yè)為您解答!


400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號(hào)
掃一掃打開(kāi)百恒網(wǎng)絡(luò)小程序

歡迎您的光顧,我們將竭誠(chéng)為您服務(wù)×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務(wù) 售后服務(wù)
 
售后服務(wù) 售后服務(wù)
 
備案專(zhuān)線 備案專(zhuān)線
 
×