真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Android自定義ViewGroup、自定義屬性及自定義View

一、自定義ViewGroup:

新豐網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站開(kāi)發(fā)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)自2013年起到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

1、構(gòu)造方法的選擇:

獲取一些需要用到的值(一些屬性或自定義屬性)

Public CustonViewGroup(Context context){this(context, null);}

Public CustonViewGroup(Context context, AttributeSet attrs){this(context, attrs, 0);}

attrs在布局文件中聲明,上述兩個(gè)構(gòu)造方法不能有自定義屬性

Public CustonViewGroup(Context context, AttributeSet attrs, int defStyleAttr)

該構(gòu)造方法在有自定義屬性情況下調(diào)用


2、onMeasure:

計(jì)算子View的寬和高以及設(shè)置自己的寬和高

3、onLayout:

決定子View的布局的位置

4、onTouchEvent:

監(jiān)聽(tīng)觸摸事件,如手指按下或放開(kāi),根據(jù)需要決定是否重載該方法

二、自定義屬性:
1、創(chuàng)建attr.xml文件:Android自定義ViewGroup、自定義屬性及自定義View

在文件中進(jìn)行相關(guān)屬性的定義,例如:




   

   
       
   

其中attr name為自定義屬性名,declare-styleable name為自定義ViewGroup名

2、在布局文件中使用:

Android自定義ViewGroup、自定義屬性及自定義View

復(fù)制xmlns:android的前一部分"http://schemas.android.com/apk",后一部分用"/res/包名"或者"/res-auto"。

3、在3個(gè)參數(shù)的構(gòu)造方法中獲得自定義屬性的值:

// 獲取我們定義的屬性
TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.SlidingMenu, defStyleAttr,0);
int n = a.getIndexCount();
for(int i = 0; i < n; i++) {
   int attr = a.getIndex(i);
   switch (attr) {
       case R.styleable.SlidingMenu_rightPadding:

           mMenuRightPadding = a.getDimensionPixelOffset(attr, 

              (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 50,                  context.getResources().getDisplayMetrics()));

           break;
   }
}
a.recycle();

三、自定義View:

1、attr.xml

2、布局文件中使用

3、構(gòu)造方法中獲取自定義屬性

4、onMeasure

5、onDraw

onDraw區(qū)別于自定義ViewGroup中的onLayout


當(dāng)前文章:Android自定義ViewGroup、自定義屬性及自定義View
網(wǎng)站URL:http://weahome.cn/article/ighiis.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部