首先,我想道歉如果我的问题是非常基本的 - 我不知道哪些关键字是有用的找到答案。在XML文件中使用视图组件(Android)
我知道如何编写两个“类型”的应用程序 - 一个是由.xml文件运行的应用程序(例如,从Celsius到华氏转换器,一些选项菜单等),以及与扩展View的类(用于具有图形组件的应用程序)。我的问题是,如何将它们结合起来?更确切地说,如何将一个View组件添加到XML文件中?实际示例:在选项菜单中绘制一个圆圈,该菜单一旦被触摸就会移动。
预先感谢您。
首先,我想道歉如果我的问题是非常基本的 - 我不知道哪些关键字是有用的找到答案。在XML文件中使用视图组件(Android)
我知道如何编写两个“类型”的应用程序 - 一个是由.xml文件运行的应用程序(例如,从Celsius到华氏转换器,一些选项菜单等),以及与扩展View的类(用于具有图形组件的应用程序)。我的问题是,如何将它们结合起来?更确切地说,如何将一个View组件添加到XML文件中?实际示例:在选项菜单中绘制一个圆圈,该菜单一旦被触摸就会移动。
预先感谢您。
我不知道在选项菜单中画圆,但一般情况下,您可以在layout xml中使用您的自定义视图类,
<com.testing.MyCustomView
id="@+id/my_view"
... />
使他们相比非常相像使用TextViews,ImageViews等
在XML中使用自定义视图,您将需要
代码视图以这样一种方式,它接受AttributeSet。例如:
公共ActivityTitleView(上下文范围内,的AttributeSet ATTRS)
定义设置样式属性。他们进入RES /价值/ attr.xml
<resources> <declare-styleable name="ActivityTitleView"> <attr name="text" format="string"/> <attr name="helpContext" format="string"/> </declare-styleable> </resources
<的LinearLayout 的xmlns:如果你想让你的属性自己的命名空间是很重要的android = “http://schemas.android.com/apk/res/android” 的xmlns:yournamespace =“HTTP: //schemas.android.com/apk/res/com.yourpackage” >
<com.yourpackage.ActivityTitleView yournamespace:text="Bla Bla" android:layout_width="fill_parent" android:layout_height="wrap_content"/>
TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.ActivityTitleView, 0, 0); String text = array.getString(R.styleable.ActivityTitleView_text); helpContext = array.getString(R.styleable.ActivityTitleView_helpContext);
对不起,StackOverflow似乎没有格式化我的代码片段。随意编辑格式。
非常感谢您的回答。不幸的是,我认为我对Android编程知之甚少,无法理解你所说的一切,所以现在我会采取其他建议的方法,但是当我有时间和精力时 - 我一定会考虑它。谢谢! – ronash 2011-05-08 21:17:59
其实它是一样的方法。我可以看到它是如何神秘的 - 几周前我一直在穿鞋子。如果你意识到你也想定制你的视图(即在xml中指定圆的半径),那么你可能想要回来并重读。问候。 – 2011-05-08 21:59:17
非常感谢,我将尝试这种方法。 – ronash 2011-05-08 21:16:22
让我们知道它是如何去的。 – harism 2011-05-08 21:28:00
嗯,我试图在View的一个简单扩展上,它工作得很好。明天(现在太累了......)我将介绍一些来自传感器的信息 - 但我不认为它会导致任何问题,因为传感器是在主要的Activity类中处理的(或者可能有另一个方式?我可能会对此感兴趣)。再次感谢你,祝你有个愉快的一周! – ronash 2011-05-08 21:36:11