在activity_main.xml中,有两行代码android:background="@drawable/border_ui"
和android:background="@drawable/my",
但是一个使用border_ui.xml文件夹res \ drawable,另一个使用文件drawable.xml找到文件夹res \ values。
有什么不同?谢谢!
此外,如果我将文件drawable.xml删除到res \ drawable文件夹并将其重命名为my.xml,则会出现错误。
activity_main.xml中
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:background="@drawable/border_ui"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
android:background="@drawable/my"
/>
</RelativeLayout>
border_ui.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<stroke android:width="1dp" android:color="#000000" />
<solid android:color="#ffffff" />
<padding
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp" />
</shape>
drawable.xml
<resources>
<drawable name="my">#f00</drawable>
</resources>
答案 0 :(得分:1)
您可以更改文件的名称,但不要将其移动到drawable文件夹。保持它当前的位置,它应该工作正常。 drawable.xml不是关键字。但是你不能拥有这个文件,它包含drawable文件夹中的资源列表。
由于您的drawable是一个资源,它应该在values文件夹而不是drawable文件夹中。
答案 1 :(得分:1)
差异是一,边界,涉及一个可绘制实体的形状。另一个是值资源,它引用了一个color,它可以作为drawable使用,如注释here所示 - 就像so =&gt;
注意:颜色资源也可以用作XML中的drawable。对于 例如,在创建状态列表drawable时,您可以引用一个 android:drawable属性的颜色资源 (机器人:抽拉= “@色/绿色”)。
我认为有问题的背景看起来像this。 (#f00表示网页安全色)
修改强> Please see this article about color drawables
它所说的以及Android Drawable Resources显示的是,用于特定目的的文件(如所显示的任何可绘制类型)都需要某些标记作为根。只是删除已建议的<resource>
标记不起作用。如果你想将颜色drawable强制到另一个资源文件夹而不是它所属的位置(值),我真的不明白为什么,那么你将不得不破解它。
最后一句话:
你问为什么他们在不同的地方,为什么你不能只重命名并将其移动到你选择的另一个文件夹中 - 这两个文件都得到了回答。我相信如果您期望将文件移动到drawable
文件夹的解决方案,那么另一个问题就是这样。请考虑提出或接受提供信息的答案。
答案 2 :(得分:1)
它是关于String的android文档,但它可以解释:
注意:字符串是使用name属性中提供的值(而不是XML文件的名称)引用的简单资源。因此,您可以将字符串资源与一个XML文件中的其他简单资源组合在一个元素下。
drawable的语法是没有元素但是常规的xml文件
答案 3 :(得分:0)
实际上,drawable.xml
文件是一个包含资源的文件,但不仅仅是drawables。
因此,如果您想将其移至文件夹drawable
并将其重命名为my.xml
,则可以。您应该删除<resources>
&amp; </resources>
代码,它应该有用。