以下是加号错误:android:icon =" @ + drawable /

时间:2017-01-14 07:17:06

标签: java android drawable

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

https://github.com/valerio-bozzolan/AcrylicPaint

在定义菜单布局的XML文件中,所有android:icon行在drawable之前都有一个加号。我在stackoverflow或其他地方找到的drawable示例都没有加号。 Android Studio 2.2.3给了我一个"无法解析符号"每个人的错误。如果我删除加号,则该错误消失。但该应用程序似乎也可以正常加号。加号是否完全错误?或者这里有什么东西我不明白?

如果你想查看它,该文件是/app/res/menu/main.xml。这是一些示例代码的屏幕截图,红色文本中有错误。感谢您提供的任何帮助。

enter image description here

4 个答案:

答案 0 :(得分:2)

邋Error错误。您必须使用 @drawable 而不是 @ + drawable

{

    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;

}

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

答案 1 :(得分:1)

所以加号看起来很神秘。让我详细解释加号。

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

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

答案 2 :(得分:0)

只有ID被编码为android:id="@+id/dummy"

对于drawable和其他东西你不需要+

可以像android:icon="@drawable/yourImage"

一样使用
android:style="@style/myStyle"

答案 3 :(得分:0)

android:id="@+id/aSampleId"不同,您无法动态生成图像。如果要访问drawable文件夹,则需要在文件夹中包含图像。

假设您在可绘制文件夹 drawable/anImage.png中有图片,那么您需要使用android:icon="@drawable/anImage"

进行调用