android中如何自定义attributes

写程序中可能需要用到一些自定义的view控件,这样就需要增加一些自定义的属性。

比如说我要做个股票报价的TextView,涨是红色,跌是绿色

1。先在values目录下创建styles.xml

<resources>

<style name=" Widget. MyTextView"  parent="android:Widget" >

<item name="positiveColor" >#FFFF0000</item>

<item name="negetiveColor" >#FF00FF00</item>

</style>

</resources>

2。上面的步骤完成后,在values目录下创建一个attrs.xml文件,告诉程序你自定义的item是什么类型的

<resources>

<declare-styleable name=" MyTextView" >

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

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

</declare-styleable>

</resources>

3。在layout设计中引用自定义view并加入style

<com.pan.MyTextView

style="@style/ Widget. MyTextView"  

android:layout_width="wrap_content" 

android:layout_height="wrap_content" />

4。activity中读取

int positiveColor;

int negetiveColor;

public   MyTextView(Context context, AttributeSet attrs, int  defStyle)

{

             super (context, attrs, defStyle);

             TypedArray a = context.obtainStyledAttributes(   attrs, R.styleable.TestView, defStyle, 0 );

              int  n = a.getIndexCount();                          

              for  (int  i = 0 ; i < n; i++)

              {

                 int  attr = a.getIndex(i);

                 switch  (attr)

                 {

                       case  R.styleable.MyTextView_positiveColor:

                               positiveColor = a.getColor(attr, Color.RED);

                                break ;

                      case  R.styleable.MyTextView_negetiveColor:

                               negetiveColor = a.getColor(attr, Color.Green);

                                break ;

                  }        

               }     

猜你喜欢

转载自20120923lina.iteye.com/blog/1692025