Android 深入理解Android中的自定义属性

2.3、布局文件中使用

三、AttributeSet与TypedArray

四、declare-styleable


一、引言

====

对于自定义属性,大家肯定都不陌生,遵循以下几步,就可以实现:

  1. 自定义一个CustomView(extends View )类

  2. 编写values/attrs.xml,在其中编写styleable和item等标签元素

  3. 在布局文件中CustomView使用自定义的属性(注意namespace)

  4. 在CustomView的构造方法中通过TypedArray获取

那么,我有几个问题:

  • 以上步骤是如何奏效的?

  • styleable 的含义是什么?可以不写嘛?我自定义属性,我声明属性就好了,为什么一定要写个styleable呢?

  • 如果系统中已经有了语义比较明确的属性,我可以直接使用嘛?

  • 构造方法中的有个参数叫做AttributeSet

  • (eg: MyTextView(Context context, AttributeSet attrs) )这个参数看名字就知道包含的是参数的数组,那么我能不能通过它去获取我的自定义属性呢?

  • TypedArray是什么鬼?从哪冒出来的,就要我去使用?

恩,针对这几个问题,大家可以考虑下,如何回答呢?还是说:老子会背上述4个步骤就够了~~

二、常见的例子

=======

接下来通过例子来回答上述问题,问题的回答顺序不定~~大家先看一个常见的例子,即上述几个步骤的代码化。

2.1、自定义属性的声明文件


<?xml version="1.0" encoding="utf-8"?>

2.2、自定义View类


package com.example.test;

import android.content.Context;

import android.content.res.TypedArray;

import android.util.AttributeSet;

import android.util.Log;

import android.view.View;

public class MyTextView extends View {

private st

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值