博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android中attrs.xml文件的使用详解
阅读量:4285 次
发布时间:2019-05-27

本文共 2661 字,大约阅读时间需要 8 分钟。

1. attrs.xml 的作用

控件有很多属性,如 android:id、android:layout_width、android:layout_height等,但是这些属性都是系统自带的属性。使用attrs.xml文件,可以自己定义属性,下面我会写些小 demo ,比较好理解

2. 在values文件夹下,新建一个attrs.xml文件

内容如下:

其中,

表明样式名称为MyView,下面包含了两个自定义属性textColor和textSize,其中textColor是颜色(color)类的属性,textSize是尺寸(dimension)类的属性

3. 自定义 MyView

public class MyView extends View {
private Paint mPaint; private static final String mString = "Welcome to BaiYe's blog"; public MyView(Context context) { this(context,null); } 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) { super.onDraw(canvas); // 设置填充 mPaint.setStyle(Paint.Style.FILL); // 画一个矩形,前俩个是矩形左上角坐标,后面俩个是右下角坐标// mPaint.setColor(Color.BLACK); canvas.drawRect(new Rect(10, 10, 100, 100), mPaint); // 绘制文字 canvas.drawText(mString, 60, 410, mPaint); }}
  • 首先从 R.styleable.CustomView 获得了TypedArray变量
  • 再用getColor(),getDimension()等方法获取相应的属性值,属性格式为“样式名_属性名”,属性后面的参数是默认值。
  • 获得属性值以后,就可以应用这些属性值。
  • recycle()方法用于返回信号给资源(不懂什么意思)

4. xml 内容

/>

xmlns:test=”http://schemas.android.com/apk/res-auto”一定要添加,添加之后才能在xml中自定义属性

5. 自定义属性

格式如上,其中“xmlns:test”冒号后面是标签名,在下面使用时(只对当前文件可用)

5.1 reference:参考某一资源ID

eg:

5.2 color:颜色值

eg:

5.3 boolean:布尔值

eg:

5.4 dimension:尺寸值

eg:

5.5 float:浮点值

eg:

5.6 string:字符串

eg:

5.7 integer:整型值 || fraction:百分数

eg:

5.8 enum:枚举值

eg:

5.9 flag 位或运算

eg:

6. 属性定义时可以同时定义多种类型值

eg:

“`

转载地址:http://zopgi.baihongyu.com/

你可能感兴趣的文章
cvc-complex-type.2.4.a: Invalid content was found starting with element
查看>>
创建自定义的jsp标签
查看>>
根据两点经纬度计算距离-mysql方式和java方式
查看>>
Servlet技术浅析(一)之GenericServlet抽象类
查看>>
Servlet技术浅析(二)之HttpServlet抽象类
查看>>
设计模式之装饰者模式
查看>>
Servlet技术浅析(三)之-----ServletRequest接口和HttpServletRequest接口
查看>>
Servlet技术浅析(四)之-----ServletResponse接口和HttpServletResponse接口
查看>>
Servlet技术浅析(五)之-----ServletConfig接口和ServletContext接口
查看>>
Servlet技术浅析(六)之-----JavaWeb应用的生命周期和Servlet的生命周期
查看>>
Servlet技术浅析(七)之-----ServletContext与Web应用范围
查看>>
Servlet技术浅析(八)之-----浏览器缓存浅析
查看>>
Servlet技术浅析(九)之-----下载文件和上传文件
查看>>
一台linux操作系统上配置多台Tomcat服务
查看>>
maven入门浅析(二)-----maven集成eclipse、jboss
查看>>
正则表达式入门教程(三)
查看>>
SyntaxError: identifier starts immediately after numeric literal错误解决办法
查看>>
正则表达式入门教程(四)
查看>>
JAVA程序员成长之路的总结
查看>>
javaEE工程师学习路线图
查看>>