3

activity_main.xml には、codeandroid:background="@drawable/border_ui"android:background="@drawable/my",

ただし、1 つはフォルダー res\drawable にある border_ui.xml を使用し、もう 1 つはフォルダー res\values にある drawable.xml ファイルを使用します。

何が違うの?ありがとう!

さらに、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>
4

4 に答える 4

1

ファイルの名前は変更できますが、drawable フォルダーに移動しないでください。現在の場所に保管してください。正常に動作するはずです。drawable.xml はキーワードではありません。ただし、drawable フォルダー内のリソースのリストを含むこのファイルを使用することはできません。

ドローアブルはリソースであるため、ドローアブル フォルダーではなく値フォルダー内にある必要があります。

于 2013-08-20T08:43:44.177 に答える
1

違いは、境界線が描画可能なエンティティである形状を含むことです。もう1つの値リソースは、ここのメモに示されているように、ドローアブルとして受け入れられるを参照しています-そのように =>

注: カラー リソースは、XML のドローアブルとしても使用できます。たとえば、ステート リスト ドローアブルを作成する場合、android:drawable 属性のカラー リソースを参照できます (android:drawable="@color/green")。

問題の背景はこのようなものだと思います。(#f00 は Web セーフ カラーを表します)

編集: color drawables に関するこの記事を参照してください

それが言い、Android Drawable Resourcesが示すことは、示されているドローアブル タイプのような特定の目的で使用されるファイルは、特定のタグがルートである必要があるということです。提案されているようにタグを削除するだけ<resource>では機能しません。色のドローアブルを、それが属する場所 (値) 以外の別のリソース フォルダーに強制的に入れたい場合は、理由がわかりませんが、それをハックする必要があります。

最後の言葉:
なぜそれらが別の場所にあるのか、なぜ名前を変更して選択した別のフォルダーに移動できないのかを尋ねましたが、両方とも回答されています。ファイルをフォルダに移動することに関する解決策を期待している場合は、そのdrawableような質問をする別の質問が適切であると思います. 賛成票を投じるか、有益な回答を受け入れることを検討してください。

于 2013-08-20T08:49:34.183 に答える