2009-08-14 10 views
22

誰かが私のビューのために背景のxmlとしてshape drawableを使う方法を手伝ってくれて本当に感謝しています。私の背景としてshape drawableを使用しています。

これは私が試したものです: しかし、私は決して色を取得します。 Androidはどの色属性に関係なく、常に私に白の背景に黒のテキストを表示します。

私が試した
<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
      android:shape="rectangle"> 
      <stroke android:width="1dip" android:color="#FBBB" /> 
      <solid android:color="#6000"/> 
</shape> 

、私はこれは私がしようとした限られた結果であるグーグル

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
      android:shape="rectangle" 
      android:background="#6000> 
</shape> 

動作しません、私が試した

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
      android:shape="rectangle" 
      android:color="#6000> 

</shape> 

を、動作しません。

+0

あなた形状の例がここで働いてみてください。表示 –

+4

@ n179911で正しく設定していない可能性があります。あなたのタイトルは、help inという単語で始まらないでください。助けを探していることは既にわかっています – Casebash

答えて

36

あなたは4つのバイトの色、例えば指定する必要があり、間違った色の設定があります。#ffff8080

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#f0600000"/> 
    <stroke android:width="3dp" android:color="#ffff8080"/> 
    <corners android:radius="3dp" /> 
    <padding android:left="10dp" android:top="10dp" 
     android:right="10dp" android:bottom="10dp" /> 
</shape> 
+0

My 1。5 SDKは3または4文字のカラーコードでうまく動作します –

+10

問題の解決方法として9人がどのようにランク付けしているかは不明です! http://developer.android.com/guide/topics/resources/more-resources.html#Colorをご覧ください。 32ビットカラーは必要ありません!さらに、私は、24ビットカラーの描画可能なものを使用するアプリケーションを公開しました。 http://developer.android.com/guide/topics/resources/drawable-resource.html#Shapeをご覧ください。最後に、私は "承認された"コードを試しました - 失敗しました! – Tenacious

+1

申し訳ありません - 私は "うまくいかない"と言っていたはずです - 失敗しません! – Tenacious

5

OKを - 私は私の問題は、あなたの質問を運転したものと同じであるかなり確信している、と私はしたことその原因を発見した。

問題は、リソースの定義(特に、リソースファイル名)が競合していることが原因です。たとえば、何らかの理由で、プロジェクトの/ res/color /に「drawable_bg.png」という名前のファイルを置くとします。あなたがこれをしたことを忘れてしまった(またはそれは偶然に起こった)。 "res/drawable/dialog_bg.xml"という名前のプロジェクトでShape Drawableを定義しようとすると、PNG( 'MyLib'から)が優先されます。異なるDPI、フォームファクタ、SDKなどのための多くの "res"フォルダを持つことができるので、ファイル名の衝突で巻き返すのはかなり簡単です。これはAndroidライブラリプロジェクトでも発生します。プロジェクトにリソースがあるプロジェクトに依存する場合、競合が発生する可能性があります。私が今日見つけたように、Eclipseは多くの状況で警告を表示したり隠したりすることができます。

これが起こると、Shape Drawableが適用されていないように見えることがあります。 「dialog_bg.png」はおそらくあなたの視点に合わせて設計されていないので、予期しない結果が得られ、実際に何が起こっているのか混同するのは簡単です。

これを解決する最も簡単な方法は、プロジェクトのドロアブルの名前を変更することです。問題がAndroidライブラリプロジェクトのリソースである場合は、http://tools.android.com/recent/buildchangesinrevision14に記載されているように、推奨される方法を適用して、より良い解決策を見つけることができます。

+0

ありがとう、私はすべてのクレイジーオプションを見つけましたが、何も助けてくれませんでした。シェイプファイルの名前変更のみが私を保存しました。 – Anastasia

3

ここにいくつかの問題があるようです。最大のものは、図形をテキストの色として使うことができ、それは意味をなさないと思われるという考えです。シェイプの背景として色を使用できますが、シェイプをビューの背景として設定できますが、シェイプをテキストの背景や前景として設定することはできません。

もう1つ間違っているのは、試した別のXMLファイルでは、色の値を囲む末尾の引用符がないため、まったくコンパイルしてはいけないということです。

3

あなたは間違ったヘキサ色属性を与えています。 #のあと8桁にしてください。例えば#00000000

1

この

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" > 

<corners 
    android:bottomLeftRadius="5dp" 
    android:bottomRightRadius="5dp" 
    android:radius="0.1dp" 
    android:topLeftRadius="5dp" 
    android:topRightRadius="5dp" /> 

<solid android:color="#Efffff" /> 

<stroke 
    android:width="2dp" 
    android:color="#25aaff" /> 

</shape> 
関連する問題