Android中attrs.xml文件的使用详解
$*********************************************************************************************$
博主推薦:
風蕭兮兮易水寒,“天真”一去兮不復還。如何找到天真的那份快樂。小編傾力推薦app:?天真無諧
下載方式:豌豆莢,應用寶,360手機助手,百度手機助手,安卓,91市場搜索:天真無諧
關注我們:查看詳情
$*********************************************************************************************$
Android中在values中定義一個attrs.xml,然后自己定義一個組件MyView
attrs.xml內容如下:
<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="MyView"> <attr name="textColor" format="color" /> <attr name="textSize" format="dimension" /> </declare-styleable> </resources>
定義的組件MyView:
package com.jiangwei.demo;import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint.Style; import android.graphics.Rect; import android.util.AttributeSet; import android.view.View;public class MyView extends View { private Paint mPaint; private static final String mString = "Welcome to Mr Wei's blog"; public MyView(Context context) { super(context); mPaint = new Paint(); }public MyView(Context context, AttributeSet attrs) { super(context, attrs); mPaint = new Paint(); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MyView); int textColor = a.getColor(R.styleable.MyView_textColor, 0XFFFFFFFF); float textSize = a.getDimension(R.styleable.MyView_textSize, 36); mPaint.setTextSize(textSize); mPaint.setColor(textColor); a.recycle(); }@Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); // 設置填充 mPaint.setStyle(Style.FILL); // 畫一個矩形,前倆個是矩形左上角坐標,后面倆個是右下角坐標 canvas.drawRect(new Rect(10, 10, 100, 100), mPaint); mPaint.setColor(Color.BLUE); // 繪制文字 canvas.drawText(mString, 10, 110, mPaint); } }
main.xml內容:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:test="http://schemas.android.com/apk/res/com.jiangwei.demo"//一定記得添加前綴android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><com.jiangwei.demo.MyView android:layout_width="fill_parent" android:layout_height="fill_parent" test:textSize="20px"//test是個前綴test:textColor="#ffffff"/> </LinearLayout>
具體內容:
格式如上,其中“xmlns:wen”冒號后面是標簽名,在下面使用時(只對當前文件可用)
<TextView ?wen:屬性名/>
“com.iteye.googlers”是你的工程包名。
1. reference:參考某一資源ID。
? ? (1)屬性定義:
? ? ? ? ? ??
? ? (2)屬性使用:
? ? ? ? ? ??<ImageViewandroid:layout_width = "42dip"android:layout_height = "42dip"android:background = "@drawable/圖片ID"/>
2. color:顏色值。
? ? (1)屬性定義:
? ? ? ? ? ??
? ? (2)屬性使用:
? ? ? ? ? ? <TextViewandroid:layout_width = "42dip"android:layout_height = "42dip"android:textColor = "#00FF00"/>
?3. boolean:布爾值。
? ? (1)屬性定義:
? ? ? ? ? ??<declare-styleable name = "名稱"><attr name = "focusable" format = "boolean" /> </declare-styleable>
? ? (2)屬性使用:
? ? ? ? ? ??<Buttonandroid:layout_width = "42dip"android:layout_height = "42dip"android:focusable = "true"/>
4. dimension:尺寸值。
? ? ?(1)屬性定義:
? ? ? ? ? ? ?<declare-styleable name = "名稱"><attr name = "layout_width" format = "dimension" /> </declare-styleable>
? ? (2)屬性使用:
? ? ? ? ? ??<Buttonandroid:layout_width = "42dip"android:layout_height = "42dip"/>
?5. float:浮點值。
? ? (1)屬性定義:
? ? ? ? ? ??<declare-styleable name = "AlphaAnimation"><attr name = "fromAlpha" format = "float" /><attr name = "toAlpha" format = "float" /> </declare-styleable>
? ? (2)屬性使用:
? ? ? ? ? ??<alphaandroid:fromAlpha = "1.0"android:toAlpha = "0.7" />?
6. integer:整型值。
? ? (1)屬性定義:
? ? ? ? ? ??<declare-styleable name = "AnimatedRotateDrawable"><attr name = "visible" /><attr name = "frameDuration" format="integer" /><attr name = "framesCount" format="integer" /><attr name = "pivotX" /><attr name = "pivotY" /><attr name = "drawable" /> </declare-styleable>
? ? (2)屬性使用:
? ? ? ? ? ??<animated-rotatexmlns: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)屬性定義:
? ? ? ? ? ??<declare-styleable name = "MapView"><attr name = "apiKey" format = "string" /> </declare-styleable>
? ? (2)屬性使用:
? ? ? ? ? ??<com.google.android.maps.MapViewandroid:layout_width = "fill_parent"android:layout_height = "fill_parent"android:apiKey = "0jOkQ80oD1JL9C6HAja99uGXCRiS2CGjKO_bc_g"/>
8. fraction:百分數。
? ? ?(1)屬性定義:
? ? ? ? ? ??<declare-styleable name="RotateDrawable"><attr name = "visible" /><attr name = "fromDegrees" format = "float" /><attr name = "toDegrees" format = "float" /><attr name = "pivotX" format = "fraction" /><attr name = "pivotY" format = "fraction" /><attr name = "drawable" /> </declare-styleable>
? ? (2)屬性使用:
? ? ? ? ? ??<rotatexmlns: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)屬性定義:
? ? ? ? ? ??<declare-styleable name="名稱"><attr name="orientation"><enum name="horizontal" value="0" /><enum name="vertical" value="1" /></attr> </declare-styleable>
? ? (2)屬性使用:
<LinearLayoutxmlns:android = "http://schemas.android.com/apk/res/android"android:orientation = "vertical"android:layout_width = "fill_parent"android:layout_height = "fill_parent"> </LinearLayout>
10. flag:位或運算。
? ? ?(1)屬性定義:
<declare-styleable name="名稱"><attr name="windowSoftInputMode"><flag name = "stateUnspecified" value = "0" /><flag name = "stateUnchanged" value = "1" /><flag name = "stateHidden" value = "2" /><flag name = "stateAlwaysHidden" value = "3" /><flag name = "stateVisible" value = "4" /><flag name = "stateAlwaysVisible" value = "5" /><flag name = "adjustUnspecified" value = "0x00" /><flag name = "adjustResize" value = "0x10" /><flag name = "adjustPan" value = "0x20" /><flag name = "adjustNothing" value = "0x30" /></attr> </declare-styleable>
? ? ?(2)屬性使用:
? ? ? ? ? ??<activityandroid:name = ".StyleAndThemeActivity"android:label = "@string/app_name"android:windowSoftInputMode = "stateUnspecified | stateUnchanged | stateHidden"><intent-filter><action android:name = "android.intent.action.MAIN" /><category android:name = "android.intent.category.LAUNCHER" /></intent-filter> </activity>
? ? ?注意:
? ? ?屬性定義時可以指定多種類型值。
? ? (1)屬性定義:
? ? ? ? ? ??<declare-styleable name = "名稱"><attr name = "background" format = "reference|color" /> </declare-styleable>
? ? (2)屬性使用:
? ? ? ? ? ? ?<ImageViewandroid:layout_width = "42dip"android:layout_height = "42dip"android:background = "@drawable/圖片ID|#00FF00"/>
轉載于:https://www.cnblogs.com/roccheung/p/5797446.html
總結
以上是生活随笔為你收集整理的Android中attrs.xml文件的使用详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 美团单车涨价:7天套餐就要15元
- 下一篇: access2003的使用