Android: 将背景布局设置为按钮

Android: setbackground layout to button

我想做以下事情:

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 中。但我不知道我该怎么做。 谢谢!

布局不是背景图片。它们包含绘制应用程序 views/screens 所必需的信息。要绘制具有自定义背景的按钮,您可以使用可绘制资源文件。

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

你可以这样设置背景,

Button btn = (Button) findViewById(R.id.btn);
btn.setBackgroundResource(R.drawable.ic_launcher);

在 drawable 目录中创建你的 caracbout2 xml 文件并在 java

中使用 R.drawable.caracbout2

您可以向 this 学习可绘制资源。