2012-01-25 11 views
1

ImageButtonの背景が私のリソースの1つと異なる描画可能なもので描画されるという問題があります。バックグラウンドを透明に設定していますが、場合によっては、ボトムシャドウ.9ngという名前のドロワーブラスのうちの1つを取り上げています。なぜ、なぜ!?奇妙な変態です...ImageButtonの背景がそれ自身の上にかすれている? Drawablesはワイルドになった?

私はこの問題を以前に見ました。私のアプリユーザーの中には、この問題を見て苦情がありましたが、今これを理解することに決めました!私が現在持っているものの下を見てください。あらゆるヒントやアイデアが役に立ちます。レイアウトの下の私の1つのXMLレイアウトの下

<color name="transparent">#00000000</color> 

私のImageButton /::

私は値/ colors.xmlの下に作成されたカラー値

<ImageButton 
    android:id="@+id/ibHelp" 
    android:layout_width="wrap_content" 
    android:layout_height="@dimen/settings_list_item_height" 
    android:background="@color/transparent" 
    android:contentDescription="@string/content_desc_more_information" 
    android:paddingLeft="10dp" 
    android:paddingRight="10dp" 
    android:scaleType="centerInside" 
    android:src="@drawable/btn_help" /> 

これは私が上で見ているものです生成されたR.javaファイル:

public static final class drawable { 
    public static final int bottom_shadow=0x7f020000; 
} 

public static final class color { 
    public static final int transparent=0x7f080009; 
} 

これは、それがどのように見えるかです:

enter image description here

これは私が見ているものです:

enter image description here

+0

時々、Eclipseの何かがうまくいかず、アプリの間違った場所に間違ったリソースが表示されることがあります。このような場合、プロジェクトのクリーンアップが役立ちます(プロジェクト→クリーン)。 –

+0

ご意見ありがとうございます。私は清潔にすることが役立つことに気づいた。この問題はちょっとうんざりする...時にはそれを再現する方法がなく、特定の電話よりも問題が発生する... – Jona

答えて

0

を、私はあなたが色のいくつかの種類であるためにあなたのボタンの背景をしたいと思いますが、あなたは、srcとの色の両方を割り当てました(レイアウトxml内の)ボタンは、ボタンが純粋な色ではなく背景としてsrcピクチャを使用することを意味します。私はポイントを作ったかどうかわかりません。

+0

あなたが書いたことを理解しているかどうかわからない...しかし、srcと背景を宣言するImageButtonの有効な使用。私はdrawableリソースと一緒にカラーリソースを使用しないというAndroid APIについてはどこにも見当たりません。 – Jona

2

私は別のプロジェクトで同じ問題に直面していると思います。背景に透明な色#00000000を使用すると、実際には透明にならず、その下に直接要素の背景ドローラブルを使用します。

私が言ったことははっきりしていませんが、これが問題なのかどうかを確認するには、すばやく簡単な解決策が見つかりました。#00000000を透明にしますが、#00FF0000 #00F00000でもそれを行うべきです。

は、私はGoogleのトラッカーで提起された問題を参照してください:http://code.google.com/p/android/issues/detail?id=24653

+0

あなたの答えをありがとう!透明な値がすべてゼロであると言っていることを理解しています。私はAndroidがそれの直下の背景だけでなく、ランダムな描画可能なものを選ぶための問題も持っているのだろうかと思います。私の場合は、この特定の断片でも使われていないランダムな描画可能なものです。 – Jona

1

それはAndroid.R.colorに組み込まれているのに、なぜあなたはあなた自身の色を作成していますか?私は以下を使用して試してみます:

android:background="@android:color/transparent" 

それが問題を解決するかどうかにかかわらず、それは簡単でクリーンです。次のように私は私のバックグラウンドセレクタ内の項目を指定したため、ただ、これに追加して、私は透明のImageButtonの背景には本当に奇妙な定期的なディスプレイの破損を見ていた

+0

フィードバックをいただきありがとうございます...しかし、どの色を使用しても問題は発生しません。 – Jona

0

<item android:drawable="@android:color/transparent" android:state_focused="false" android:state_pressed="false" android:state_selected="true"/> 

このかもしれないが動作するように見えます時折、しかし、私は間違いなく透明な背景の代わりに非常にすべての白い背景でImageButtonsをレンダリングするケースを持っていた。

私は、アンドロイド:drawable構文を色リソースと混合しています。色リソースを指定する正しい方法は、android:color = "#FF00FF"属性か、要素を使用する項目の子要素のようです。私は長く頑張り、最終的にこの記事を見つけました。

関連する問題