我一直在github上看这个Android绘图应用程序:
https://github.com/valerio-bozzolan/AcrylicPaint
在定义菜单布局的XML文件中,所有android:icon
行在drawable
之前都有一个加号。我在stackoverflow或其他地方找到的drawable
示例都没有加号。 Android Studio 2.2.3给了我一个"无法解析符号"每个人的错误。如果我删除加号,则该错误消失。但该应用程序似乎也可以正常加号。加号是否完全错误?或者这里有什么东西我不明白?
如果你想查看它,该文件是/app/res/menu/main.xml。这是一些示例代码的屏幕截图,红色文本中有错误。感谢您提供的任何帮助。
答案 0 :(得分:2)
邋Error错误。您必须使用 @drawable 而不是 @ + drawable 。
{
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
显示您可以访问保存在应用程序可绘制文件夹中的drawable。
答案 1 :(得分:1)
所以加号看起来很神秘。让我详细解释加号。
当我们为任何视图提供id时,它通常是新的,并且在R.id类中不存在id引用。
因此,当您使用findViewById(R.id.view)
之类的内容时,您无法访问该特定ID,因为它不可用
因此,要通知编译器必须在R.id文件中添加新引用,我们将id声明为android:@+id/view
,此处+表示将此id添加到R.id引用。
但是对于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"