Android 安卓:设置可拉深按钮

Android 安卓:设置可拉深按钮,android,button,layout,adt,Android,Button,Layout,Adt,在我的应用程序中有3个按钮(屏幕截图在底部)。现在我想在第一个按钮(底部的图像)上设置一个AnimatedDrawable(一个手指)。我使用的是线性布局,按钮的背景只是一种颜色(不可绘制)。 我试过这个: <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item>

在我的应用程序中有3个
按钮(屏幕截图在底部)。现在我想在第一个
按钮(底部的图像)上设置一个
AnimatedDrawable
(一个手指)。我使用的是
线性布局
,按钮的背景只是一种颜色(不可绘制)。 我试过这个:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
   <item>
        <shape android:shape="rectangle">
            <solid android:color="@android:color/black"/>
        </shape>
    </item>
    <item android:drawable="@drawable/finger"></item>
</layer-list>

然后将
层列表
设置为
按钮
的背景,但手指与
按钮
一样大。我还尝试在我的
线性布局中使用
相对值
,但是我无法设置
按钮的
权重
。我无法使用
ImageButton
,因为
按钮上有文本。那么有没有可能解决这个问题呢

你好,尼尔斯


您可以通过以下方式编程设置按钮上的图像:

final Button btn = (Button) findViewById(R.id.your_Button);


btn.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        btn.setBackgroundResource(R.drawable.icon);
    }
});
您可以使用“图像按钮”,这样更适合您,代码如下:

final ImageButton next = (ImageButton) findViewById(R.id.your_Button) ;
Drawable d = Drawable.createFromPath("@drawable/your_image");
next.enter.setImageDrawable(d);
请尝试以下代码:

<Button
    android:id="@+id/Submit"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="23dp"
    android:drawableRight="@android:drawable/ic_menu_directions"
    android:text="Button" />


代替这个“@android:drawable/ic_menu_directions”,你可以从drawable中选择任何图像

u可以选择将手部图像设置为按钮drawable,并为drawable制作动画。可以使用android:drawableRight=”“设置手部按钮tanks,你能再解释一点吗?我不明白你的说明。请检查你版面中按钮添加这一行的链接(示例代码)android:drawableRight=“@android:drawable/ic_菜单_方向”,但问题是我无法在图像按钮上设置文本我相信你的意思是“而是”而不是“即时”谢谢,我不得不通过设置权重来修改它,但效果非常好。我只是注意到,屏幕上的文本比没有图像时更为左侧。有可能解决这个问题吗?@user3125728填充并对齐它