1

私は次のことをしたい:

button.setBackgroundResource(R.layout.caracbout);

ただし、この関数は次のようにしか機能しません。

button.setBackgroundResource(R.drawable.xxxx);

私のボタンは

<Button
            android:layout_width="0dp" 
            android:layout_height="match_parent" 
            android:layout_weight=".6"
            android:background="@layout/boutcarac"
            android:textColor="#000000"
            android:text="Refresh"
            android:clickable="true"
            android:onClick="refreshfiche"/>

私のレイアウトcaracbout xmlは次のようになります

<item android:state_pressed="true" >
        <shape android:shape="rectangle"  >
            <corners android:radius="5dip"/>
            <stroke
                android:width="1dip"
                android:color="#000000" />
            <gradient
                android:angle="-90"
                android:startColor="#0000"
                android:endColor="#fff5d6"  />
        </shape>
    </item>

    <item style="@style/typocarac">
        <shape android:shape="rectangle"  >
            <corners android:radius="5dip"/>
            <stroke
                android:width="1dip"
                android:color="#fff5d6" />
            <gradient
                android:angle="-90"
                android:startColor="#fff5d6"
                android:endColor="#0000"  />
        </shape>
    </item>

項目 android:state_pressed="true" を変更する必要があるため、xml caracbout2 を作成して Java. しかし、どうすればそれができるのかわかりません。ありがとう!

4

3 に答える 3

0

レイアウトは背景画像ではありません。これらには、アプリケーションのビュー/画面を描画するために必要な情報が含まれています。カスタム背景でボタンを描画するには、ドローアブル リソース ファイルを使用できます。

http://developer.android.com/guide/topics/resources/drawable-resource.html

于 2015-11-10T10:48:23.827 に答える