1. ホーム
  2. アンドロイド

[解決済み】Android LinearLayout Gradient Background

2022-04-01 03:08:18

質問

LinearLayoutにグラデーションの背景を適用するのに苦労しています。

私が読んだ限りでは、これは比較的簡単なはずなのですが、どうしてもうまくいかないようです。参考までに、私は 2.1-update1 で開発しています。

header_bg.xml。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:angle="90"
        android:startColor="#FFFF0000"
        android:endColor="#FF00FF00"
        android:type="linear"/>
</shape>

main_header.xml。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="50dip"
    android:orientation="horizontal"
    android:background="@drawable/header_bg">
</LinearLayout>

もし、@drawable/header_bgをある色、例えば#FF0000に変更すると、全く問題なく動作します。私はここで何か明白なものを見逃していますか?

解決方法は?

OK セレクタを使用して解決することができました。以下のコードを参照してください。

main_header.xmlを作成します。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="50dip"
    android:orientation="horizontal"
    android:background="@drawable/main_header_selector">
</LinearLayout>

main_header_selector.xml。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape>
        <gradient
            android:angle="90"
            android:startColor="#FFFF0000"
            android:endColor="#FF00FF00"
            android:type="linear" />
    </shape>
</item>
</selector>

同じ問題を抱えている人の助けになれば幸いです。