main.xml中的Android自定义xml标记

main.xml中的Android自定义xml标记,android,xml,tags,Android,Xml,Tags,我正在修改Android终端模拟器程序的源代码,该程序在main.xml的线性布局中包含以下令人困惑的xml代码: <com.vtrandal.bluesentry.EmulatorView android:id="@+id/emulatorView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft=

我正在修改Android终端模拟器程序的源代码,该程序在main.xml的线性布局中包含以下令人困惑的xml代码:

<com.vtrandal.bluesentry.EmulatorView
    android:id="@+id/emulatorView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    />


同样的xml代码也与main.xml一起出现在另一个xml文件/res/layout中。我可以看到它似乎以使用我的包名创建的自定义标记开始。但是为什么呢?这是怎么可能的,为什么会有人想要这样的东西?

这是Android中视图和视图的语法。

当您扩展视图以创建自定义组件时,需要一种将这些对象添加到xml布局的方法。您可以通过使用完整的类名(包括包名)来实现这一点。尼古拉斯之前发布的文章对此进行了解释

该标记中使用的属性可以是用于正在扩展的视图的属性,也可以是在新架构中定义的自定义属性


关于这一点,您可以在这里学习一个很好的教程:

不确定到底是什么让人困惑。我将假定它是
com.vtrandal.bluentry.EmulatorView
零件。这是在扩展xml文件时将实例化的类的名称

如果你已经习惯了这样的事情:

<TextView
   android:id="@+id/emulatorView"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_alignParentLeft="true"
/>

但是因为充气机知道一些特殊的软件包(
android.widget
android.view
android.webkit
),所以可以在xml中跳过它们。

谢谢@Aleadam,我将查看这些链接。但是我看不到任何东西正在被扩展-只是突然创建的。
class-EmulatorView
是如何定义的?它没有在任何地方被定义。我所拥有的只是我最初发布的内容:在您的包中似乎应该有一个类
com.vtrandal.bluesentry.EmulatorView
(扩展可能是
com.googlecode.android\u scripting.terminal.EmulatorView
)。也许这个项目中包含了一个jar中的类?很抱歉@Aleadam花了这么长时间来依赖它。我在项目中有一个jar,它不是EmulatorView。这是给我的。所以我不知道该去哪里找,除了@nicholas.hauschild提供的文档说明了在Android中创建自定义组件和视图的语法。你的答案是如此简洁和正确。“我怎么投你的票?”文斯:嗯,你已经投票给Aleadam了,你只能选择一个正确答案(你可以改变你认为正确答案的答案,但在这种情况下这不是必要的)。您可以使用问题/答案旁边数字周围的箭头向上或向下投票某人的答案或问题。
<android.widget.TextView
   android:id="@+id/emulatorView"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_alignParentLeft="true"
/>