Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android 自定義控件之xml---- attributeset attrs

android 自定義控件之xml---- attributeset attrs

編輯:關於Android編程

主要是說明android 自定義控件的在布局代碼中設置屬性,如何自定義attributeset ,和在控件中如何獲取到xml布局中設置的屬性值,不是想了解這方面的請略過...不浪費大家時間

1.首先添加attr屬性值

在當前project中的res/value目錄中創建xml-resources;

如下:

 




    
    
    
    

    
        
        
        
        
    

其中上面的attr表情聲明屬性以及format中的屬性的類型

 

屬性類型有

 

1. reference:參考某一資源ID。

(1)屬性定義:

 

(2)屬性使用:

android:layout_width = "42dip"
android:layout_height = "42dip"
android:background = "@drawable/圖片ID"

/>

2. color:顏色值。

(1)屬性定義:

 

(2)屬性使用:

android:layout_width = "42dip"
android:layout_height = "42dip"
android:textColor = "#00FF00"

/>

3. boolean:布爾值。

(1)屬性定義:

 

(2)屬性使用:

android:layout_width = "42dip"
android:layout_height = "42dip"

android:focusable = "true"

/>

4. dimension:尺寸值。

(1)屬性定義:

 

(2)屬性使用:

android:layout_width = "42dip"
android:layout_height = "42dip"

/>

5. float:浮點值。

(1)屬性定義:


 

(2)屬性使用:

android:fromAlpha = "1.0"
android:toAlpha = "0.7"

/>

6. integer:整型值。

(1)屬性定義:






 

(2)屬性使用:

xmlns:android = "http://schemas.android.com/apk/res/android"
android:drawable = "@drawable/圖片ID"
android:pivotX = "50%"
android:pivotY = "50%"
android:framesCount = "12"
android:frameDuration = "100"

/>

7. string:字符串。

(1)屬性定義:


(2)屬性使用:

android:layout_width = "fill_parent"
android:layout_height = "fill_parent"
android:apiKey = "0jOkQ80oD1JL9C6HAja99uGXCRiS2CGjKO_bc_g"

/>

8. fraction:百分數。

(1)屬性定義:







(2)屬性使用:

xmlns:android = "http://schemas.android.com/apk/res/android"
   android:interpolator = "@anim/動畫ID"

android:fromDegrees = "0"
   android:toDegrees = "360"

android:pivotX = "200%"

android:pivotY = "300%"
   android:duration = "5000"

android:repeatMode = "restart"

android:repeatCount = "infinite"

/>

9. enum:枚舉值。

(1)屬性定義:




 

(2)屬性使用:

xmlns:android = "http://schemas.android.com/apk/res/android"
android:orientation = "vertical"
android:layout_width = "fill_parent"
android:layout_height = "fill_parent"
>

10. flag:位或運算。

(1)屬性定義:












 

(2)屬性使用:

android:name = ".StyleAndThemeActivity"
android:label = "@string/app_name"
android:windowSoftInputMode = "stateUnspecified | stateUnchanged | stateHidden">



 

注意:

屬性定義時可以指定多種類型值。

(1)屬性定義:

 

(2)屬性使用:

android:layout_width = "42dip"
android:layout_height = "42dip"
android:background = "@drawable/圖片ID|#00FF00"

/>

哈哈上面是偷的ctrl CV出來的。。。

 

2.獲取屬性的值

在最後一個構造方法中獲取屬性的值

 

	TypedArray typedArray = getResources().obtainAttributes(attrs,
				R.styleable.TabView);

這裡面的TabView是我在上面attr中定義的該控件的名字,

 

mTextColorNormal = typedArray.getColor(R.styleable.TabView_text_normal_color, mTextColorNormal);

取顏色的是getColor、去寬度高度是getDimension,還有getboolean。具體自己看提示編譯器提示,

需要注意的是這裡R.styleable.TabView_text_normal_color

這裡輸入R.styleable然後輸入TabView,會出現相應的屬性,自己去找。

 

最後回收掉typedArray 釋放內存。 typedArray.recycle();

 

 

3.在xml中配置自定義屬性:

首先在

 

 xmlns:android="http://schemas.android.com/apk/res/android"

之後加一個

 

 

    xmlns:app="http://schemas.android.com/apk/res-auto"

這個將最後設置為res-auto,其實可以准備定位到attr.xml文件。但是可以自動找到這個文件,我就不作死了。

 

上面的

  xmlns:app

 

其中的app,可以自行設置,根據個人愛好吧。

 

但是引用自定義屬性的時候必須帶上自己設置的這個(app)name;

 

使用如下:

 

    app:item_padding="10dp"
        app:text_normal_color="#ff777777"
        app:text_select_color="#ff45c01a"
        app:text_size="12sp"



 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved