編輯:關於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_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);
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"
上面的
xmlns:app
其中的app,可以自行設置,根據個人愛好吧。
但是引用自定義屬性的時候必須帶上自己設置的這個(app)name;
使用如下:
app:item_padding="10dp" app:text_normal_color="#ff777777" app:text_select_color="#ff45c01a" app:text_size="12sp"
本文實例實現一下 RecyclerView,代碼比較簡單,適合初學者,如有錯誤,歡迎指出。復習 ListView可以查看這篇文章深入淺出學習Android ListVie
一、前言新的一年又開始了,大家是否還記得去年年末的時候,我們還有一件事沒有做,那就是解析Android中編譯之後的classes.dex文件格式,我們在去年的時候已經介紹
android開發之synchronized的用法 在android開發中synchronized主要有四種用法。第一是在方法聲明時使用;第二是在對某一代碼塊時使用;
項目中需要用到底欄導航欄,滑動或者點擊會切換上面的視圖,如圖: 這個效果使用Viewpager+Fragmen實現是主流方案,加入你之前對fragment