android Theme使用四

常见问题杂记

1.3 引用资源时使用@还是?的问题

关于在引用资源时使用@还是?的问题,我们在设置style的时候既可以使用@也可以使用?, 例如android:textAppearance="@andorid:style/TextAppearance.Medium",

android:textAppearance="?android:attr/textAppearanceMedium"

使用@表示使用固定的style,而不会跟随Theme改变,这个style可以在style.xml中找到。

而?表示从Theme中查找引用的资源名

 

1.3.1 attrs.xml常见问题:

1.3.1_1、<declare-styleable> 这个标签的作用到底是什么??

declare-styleable标签的作用:方便在程序中获取该标签下的属性数组。可以通过R.styleable.name方式获取属性数组,可以通过R.styleable.styleablename_attrname获取某一个属性。

 

1.3.1_2、包含在<declare-styleable>标签内的属性和不包含在该标签内的属性有什么区别??

获取方式不同,在declare-styleable标签内的属性可以作为一个数值,一次获取。

1.3.3_3、布局文件中自定义名字空间可以随便起前缀名字吗??

网上查了一下说名字空间的名字可以随便起,可是我尝试了却不行。

比如attrs.xml中定义了一些属性

<declare-styleable name="ProgressWheel">

       <attr name="text" format="string" />

       <attr name="textColor" format="color" />

        <attr name="textSize"format="dimension" />

       <attr name="barColor" format="color" />

</declare-styleable>

 

布局文件中自定义名字空间

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"

   xmlns:progre="http://schemas.android.com/apk/res-auto"

    ……

   >

      <com.todddavies.components.progressbar.progre

              android:layout_width="100dp"

              android:layout_height="100dp"

              progre:barColor="#FF5601"

              progre:textColor="#222222"

           />

</RelativeLayout>

 

我这边将ProgressWheel换成progre程序报错说是找不到资源progre

我使用ProgressWheel作为名字空间就没有问题。

你可能感兴趣的:(android Theme使用四)