Java 下面的加号是否为错误:android:icon="@+;可牵引/

Java 下面的加号是否为错误:android:icon="@+;可牵引/,java,android,drawable,Java,Android,Drawable,我一直在看github上的Android绘图应用程序: 在定义菜单布局的XML文件中,所有的android:icon行在drawable之前都有一个加号。我在stackoverflow或其他地方找到的drawable示例都没有这个加号。Android Studio 2.2.3给了我一个“无法解析符号”的错误。如果我去掉加号,错误就会消失。但是这个应用程序似乎也可以在附加标志上正常工作。加号是不是完全错了?还是有什么事情我不明白 如果您想查看该文件,则该文件为/app/res/menu/main

我一直在看github上的Android绘图应用程序:

在定义菜单布局的XML文件中,所有的
android:icon
行在
drawable
之前都有一个加号。我在stackoverflow或其他地方找到的
drawable
示例都没有这个加号。Android Studio 2.2.3给了我一个“无法解析符号”的错误。如果我去掉加号,错误就会消失。但是这个应用程序似乎也可以在附加标志上正常工作。加号是不是完全错了?还是有什么事情我不明白

如果您想查看该文件,则该文件为/app/res/menu/main.xml。下面是一些示例代码的屏幕截图,错误显示为红色文本。谢谢你能提供的帮助


草率的错误。您必须使用@drawable而不是@+drawable

android:icon="@drawable/

显示您访问保存在应用程序的drawable文件夹中的drawable。

这是一个草率的错误。您必须使用@drawable而不是@+drawable

android:icon="@drawable/

显示您访问保存在应用程序可绘制文件夹中的可绘制内容。

只有id编码为
android:id=“@+id/dummy”

对于可绘制和其他不需要+的东西

它可以像android:icon=“@drawable/yourImage”


只有id被编码为
android:id=“@+id/dummy”

对于可绘制和其他不需要+的东西

它可以像android:icon=“@drawable/yourImage”

与android:id=“@+id/aSampleId”不同,您不能动态生成图像。如果要访问drawable文件夹,则需要在文件夹本身中有一个图像

假设您在drawable文件夹中有一个图像
drawable/anImage.png
,那么您需要使用
android:icon=“@drawable/anImage”
调用它,与
android:id=“@+id/aSampleId”
不同,您不能动态生成图像。如果要访问drawable文件夹,则需要在文件夹本身中有一个图像


假设您在drawable文件夹中有一个图像
drawable/anImage.png
,那么您需要使用
android:icon=“@drawable/anImage”
调用它,因此加号看起来很神秘。让我详细解释一下加号

  • 当我们给任何视图提供一个id时,它通常是新的,并且该id引用在R.id类中不存在。
    因此,当您使用类似于
    findviewbyd(R.id.view)
    的东西时,您无法访问该特定id,因为它不可用。
    因此,为了通知编译器必须在R.id文件中添加新的引用,我们将id声明为
    android:@+id/view
    ,此处+表示将此id添加到R.id引用中

  • 但是对于可绘制的、样式、颜色等,您首先在各自的文件夹中创建它们,编译器(比如Gradle)可以访问这些文件夹,并在各自的类(如R.drawable、R.style等)中自动引用它们。
    因此,当我们在xml中引用它们时,我们不使用+符号,因为在它们各自的声明中已经创建了该引用


  • 所以在你的例子中,加号看起来很神秘。让我详细解释一下加号

  • 当我们给任何视图提供一个id时,它通常是新的,并且该id引用在R.id类中不存在。
    因此,当您使用类似于
    findviewbyd(R.id.view)
    的东西时,您无法访问该特定id,因为它不可用。
    因此,为了通知编译器必须在R.id文件中添加新的引用,我们将id声明为
    android:@+id/view
    ,此处+表示将此id添加到R.id引用中

  • 但是对于可绘制的、样式、颜色等,您首先在各自的文件夹中创建它们,编译器(比如Gradle)可以访问这些文件夹,并在各自的类(如R.drawable、R.style等)中自动引用它们。
    因此,当我们在xml中引用它们时,我们不使用+符号,因为在它们各自的声明中已经创建了该引用


  • 是的,那些不在那里。它只是
    “@drawable/whatever”
    +
    用于
    id
    属性。在
    @+id/color\u菜单中
    意味着在
    R.id
    中创建一个名为
    color\u菜单
    的新字段,以便您可以在代码中访问它。是的,这些字段不在那里。它只是
    “@drawable/whatever”
    +
    用于
    id
    属性。在
    @+id/color\u菜单中
    意味着在
    R.id
    中创建一个名为
    color\u菜单
    的新字段,以便您可以在代码中访问它。