微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

转attrs.xml文件的属性解释

转载自:http://www.jb51.cc/article/p-dbjgrucp-qy.html


Android中在values中定义一个attrs.xml,然后自己定义一个组件MyView

attrs.xml内容如下:

[html] view plain copy
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <resources>
  3. declare-styleablename="MyView">
  4. attrname="textColor"format="color"/>
  5. attrname="textSize"format="dimension"/>
  6. </declare-styleable>

定义的组件MyView:

copy

packagecom.jiangwei.demo;
  • importandroid.content.Context;
  • importandroid.content.res.TypedArray;
  • importandroid.graphics.Canvas;
  • importandroid.graphics.Color;
  • importandroid.graphics.Paint;
  • importandroid.graphics.Paint.Style;
  • importandroid.graphics.Rect;
  • importandroid.util.AttributeSet;
  • importandroid.view.View;
  • publicclassMyViewextendsView{
  • privatePaintmPaint;
  • privatestaticfinalStringmString="WelcometoMrWei'sblog";
  • publicMyView(Contextcontext){
  • super(context);
  • mPaint=newPaint();
  • }
  • publicMyView(Contextcontext,AttributeSetattrs){
  • super(context,attrs);
  • mPaint=newPaint();
  • TypedArraya=context.obtainStyledAttributes(attrs,R.styleable.MyView);
  • inttextColor=a.getColor(R.styleable.MyView_textColor,0XFFFFFFFF);
  • floattextSize=a.getDimension(R.styleable.MyView_textSize,36);
  • mPaint.setTextSize(textSize);
  • mPaint.setColor(textColor);
  • a.recycle();
  • }
  • @Override
  • protectedvoidonDraw(Canvascanvas){
  • //TODOAuto-generatedmethodstub
  • super.onDraw(canvas);
  • //设置填充
  • mPaint.setStyle(Style.FILL);
  • //画一个矩形,前俩个是矩形左上角坐标,后面俩个是右下角坐标
  • canvas.drawRect(newRect(10,10,100,100),mPaint);
  • mPaint.setColor(Color.BLUE);
  • //绘制文字
  • canvas.drawText(mString,110,mPaint);
  • }

  • main.xml内容:

    copy

    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
  • test:textSize="20px"//test是个前缀
  • test:textColor="#ffffff"LinearLayout>

  • 具体内容:

    格式如上,其中“xmlns:wen”冒号后面是标签名,在下面使用时(只对当前文件可用)
    <TextView wen:属性名/>
    “com.iteye.googlers”是你的工程包名。
    1. reference:参考某一资源ID。
    (1)属性定义:


    6. integer:整型值。
    copy
    declare-styleablename="AnimatedRotateDrawable"attrname="visible"attrname="frameDuration"format="integer"attrname="framesCount"format="integer"attrname="pivotX"attrname="pivotY"attrname="drawable"copy
    animated-rotate
  • 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:字符串。
    copy
    declare-styleablename="MapView"attrname="apiKey"format="string"copy
    com.google.android.maps.MapView
  • android:layout_width="fill_parent"
  • android:layout_height="fill_parent"
  • android:apiKey="0jOkQ80oD1JL9C6HAja99uGXCRiS2CGjKO_bc_g"
  • 8. fraction:百分数。
    copy
    declare-styleablename="RotateDrawable"attrname="fromDegrees"format="float"attrname="toDegrees"format="float"attrname="pivotX"format="fraction"attrname="pivotY"format="fraction"copy
    rotate
  •   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:枚举值。
    copy
    attrname="orientation"enumname="horizontal"value="0"enumname="vertical"value="1"attr (2)属性使用:

    copy

    LinearLayout
  • android:orientation="vertical"
  • 10. flag:位或运算。
    (1)属性定义:

    copy

    attrname="windowSoftInputMode"flagname="stateUnspecified"value="0"flagname="stateUnchanged"value="1"flagname="stateHidden"value="2"flagname="stateAlwaysHidden"value="3"flagname="stateVisible"value="4"flagname="stateAlwaysVisible"value="5"flagname="adjustUnspecified"value="0x00"flagname="adjustResize"value="0x10"flagname="adjustPan"value="0x20"flagname="adjustNothing"value="0x30" lt;/declare-styleablecopy
    activity
  • android:name=".StyleAndThemeActivity"
  • android:label="@string/app_name"
  • android:windowSoftInputMode="stateUnspecified|stateUnchanged | stateHidden"intent-filteractionandroid:name="android.intent.action.MAIN"categoryandroid:name="android.intent.category.LAUNCHER"activity
    注意:

    属性定义时可以指定多种类型值。

    copy
    attrname="background"format="reference|color"copy
    android:background="@drawable/图片ID|#00FF00"
  • />
  • 原文地址:https://www.jb51.cc/xml/294474.html

    版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。