后端 我的Android笔记(13)

afgfhjk · August 12, 2021 · 3 hits

开发 Android 时的那些笔记...!!
Android 已经帮我们架构好一个很好的框架
可以将所有的 view 都写在 xml 里,而尽可能的避免与 controller 耦合。
所以每当自己在覆写 View,在写自己的 View 时,
如果有一些 View 的参数属性要设置时,
除了可以动态调用函数外,利用 AttributeSet 也可以让使用的人在 xml 里面直接做设置喔。
*********************
首先,先创建
{project}\res\values\attr.xml*
并且在里面创建自己的参数:

<resources>
    <declare-styleable name="myTheme">
        <attr name="style" format="integer" />
    </declare-styleable>
</resources>

Format 的种类参考:
http://blog.csdn.net/mayingcai1987/article/details/6216655

基本上这样就完成了。接下来就可以直接在 xml 用下列的方式给 MyView 做专属的设置。
{project}\\res\\layout\\layout.xml

<com.android.sample.MyView
        xmlns:mytheme="http://schemas.android.com/apk/res/com.android.sample"        
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        mytheme:style="1"
        />

当然,在 MyView 这里要处理这些参数是拿来要做甚么用的逻辑啰....
com.android.sample.MyView

public static final int DEFAULT_STYLE = 1;
private int mStyle = DEFAULT_STYLE;

public MyView(Context context, AttributeSet attrs) {
  super(context, attrs);
  TypedArray ta = context.obtainStyledAttributes(attrs,
    R.styleable.myTheme);
  mStyle = ta.getInt(R.styleable.myTheme_style,DEFAULT_STYLE);
  // 用mStyle去动态做一些UI设置
  ta.recycle();
}

以上是一个简单的范例。

在写 View 时,养成自订义 attr.xml 是一个好的习惯,
这样别人再使用这个 View 时,不但弹性变高了,可读性也比较好。

AttributeSet
http://developer.android.com/reference/android/util/AttributeSet.html

TypedArray
http://developer.android.com/reference/android/content/res/TypedArray.html


No Reply at the moment.
You need to Sign in before reply, if you don't have an account, please Sign up first.