目录
前言
在实际开发中,我们需要自定义属性,可是又无从下手,那么我们是不是可以参考android sdk 中控件来写呢?这篇文章带大家探索,系统控件的属性.
系统属性所在目录
系统控件属性存放在sdk的如下目录中,每个人电脑存放路径不同,但是sdk中的路径都是相同的.
例如本机电脑路径:
C:\MyPrograms\Android\SdkAS20180802\platforms\android-26\data\res\values
查看系统属性
在values目录下我们用编辑器打开attrs.xml
![](https://img.haomeiwen.com/i8077710/8a007fd524c6fdff.png)
搜索锁定TextView属性集
<declare-styleable name="TextView">
<!-- Determines the minimum type that getText() will return.
The default is "normal".
Note that EditText and LogTextBox always return Editable,
even if you specify something less powerful here. -->
<attr name="bufferType">
<!-- Can return any CharSequence, possibly a
Spanned one if the source text was Spanned. -->
<enum name="normal" value="0" />
<!-- Can only return Spannable. -->
<enum name="spannable" value="1" />
<!-- Can only return Spannable and Editable. -->
<enum name="editable" value="2" />
</attr>
搜索name="text"
属性
<attr name="text" format="string" localization="suggested" />
我们可以看到系统控件TextView属性text的定义,那么如何读取该属性呢,我们回到TextView源码中查看.
解析读取属性
进入构造函数
public TextView(
Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {}
查看属性读取
CharSequence text = "";
case com.android.internal.R.styleable.TextView_text:
fromResourceId = true;
text = a.getText(attr);
break;
网友评论