Android“布局编辑器”和“自定义属性”

时间:2010-06-22 01:08:10

标签: android

我正在构建一个自定义视图,并试图弄清楚如何将它与eclipse中的gui布局编辑器集成。我已将下面的代码添加到我的构造器中。

 public baseGrid(Context context, AttributeSet attrs) {
  super(context, attrs);

  if (attrs.getAttributeValue(null, "bufferTop") != null)
   bufferTop = Integer.parseInt(attrs.getAttributeValue(null, "bufferTop"));   
  ...

它可以从xml布局文件中读取此xml属性(... bufferTop="10" ...)。但是,有没有办法让bufferTop在GUI属性编辑器中显示为我可以在不编辑XML的情况下设置的属性?

由于

1 个答案:

答案 0 :(得分:2)

尝试将“attrs.xml”文件添加到“res / values”文件夹中。

<?xml version="1.0" encoding="utf-8"?>
<resources>
     <declare-styleable name="MyAttrs">       
        <attr name="bufferTop"  format="dimension" />
        <attr name="myColor"    format="color" />
        <attr name="myInt"  format="integer" />        
        <attr name="myFloat"    format="float" />  
    </declare-styleable>    
</resources>

通过以下代码阅读:

public baseGrid(Context contxt, AttributeSet attrs) {
 TypedArray a = context.obtainStyledAttributes(attrs,
                R.styleable.MyAttrs);
 bufferTop  = a.getInt(R.styleable.MyAttrs_bufferTop, 10);
 a.recycle();
}

以这种方式定义小部件:

<?xml version="1.0" encoding="utf-8"?>
< YOURPACKAGE.BaseGrid
        android:background="@drawable/red"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        app:bufferTop="100"/>