为Android构建自定义复合视图。如何公开属性?

时间:2011-06-30 00:19:40

标签: android android-layout

做类似的事情:http://developer.android.com/guide/topics/ui/custom-components.html

现在我想做这样的事情:

<com.me.activities.MyCompoundControl android:id="@+id/someName" android:layout_height="wrap_content" android:layout_width="wrap_content" customproperty="12345"/>

所以,我的问题是如何声明/代码

  

CustomProperty的

因此,在插入自定义视图时,我可以用XML引用它吗?

2 个答案:

答案 0 :(得分:1)

有关如何使用/res/values/attrs.xml文件指定要附加到自定义视图的自定义属性,然后在组件初始化中进行访问,请参阅http://www.infidian.com/2008/05/02/android-tutorial-42-passing-custom-variables-via-xml-resource-files/

答案 1 :(得分:1)

您需要在res / values / attrs.xml中定义自定义属性,并在视图的属性感知构造函数中读取它们的值。然后使用自定义命名空间引用这些属性。

你可以看到我在我的库中的一个例子:

属性在这里定义: http://code.google.com/p/android-flip3d/source/browse/res/values/attrs.xml

在这里解析: http://code.google.com/p/android-flip3d/source/browse/src/pl/polidea/androidflip3d/Flip3DView.java#117

这里提到: http://code.google.com/p/android-flip3d/source/browse/res/layout/main.xml

虽然没有关于可用属性类型的好文档,但您需要浏览android源代码(在那里查找attrs.xml)