按钮包含图像时无法调整位置

Can't adjust position when button include image

我有一个动态判断,所以我把drawable设置在java左边。 我的问题是,我不知道如何调整图像位置,我尝试在 xml 中使用 android:drawablePadding="" 并在 java 中使用 setCompoundDrawablePadding();

他们都改变了我的文字位置而不是图像。

我仍然尝试更改 drawable.setBounds() 设置,但看起来更改的是比例而不是位置。

如何更改按钮内的图像?任何帮助,将不胜感激。提前致谢。

这是我的 bttuon.xml:

<Button
            android:id="@+id/goToPersonalPage"
            android:layout_width="145dp"
            android:layout_height="50dp"
            android:layout_marginLeft="20dp"
            android:background="@drawable/button_oval"
            android:text="@string/memberButton"
            android:textColor="#29395e"
            android:textSize="18dp" />

这是我关于按钮的代码:

goToPersonalPage.setCompoundDrawables(setIcon(R.drawable.btn_member_green_128x128), null, null, null);

setIcon函数为:

private Drawable setIcon(int id) {
        Drawable drawable = getResources().getDrawable(id);
        drawable.setBounds(0, 0, (int) (drawable.getIntrinsicWidth() * 0.2),
                (int) (drawable.getIntrinsicHeight() * 0.2));

        return drawable;
    }

当您动态添加内容时,您可以按如下所示为按钮布局创建 LayoutParams,然后在其上设置边距,然后使用 [= 在按钮视图上应用11=].

private LinearLayout.LayoutParams viewGroup = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

    viewGroup.setMargins(dimens, dimens, dimens, dimens);
    goToPersonalPage.setCompoundDrawablePadding(10);
    goToPersonalPage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.btn_member_green_128x128,0,0,0);
    goToPersonalPage.setLayoutParams(this.viewGroup);

添加android:paddingLeft="20dp"为您添加左填充Button

<Button
    android:id="@+id/goToPersonalPage"
    android:layout_width="145dp"
    android:layout_height="50dp"
    android:layout_marginLeft="20dp"
    android:background="@drawable/button_oval"
    android:text="@string/memberButton"
    android:textColor="#29395e"
    android:paddingLeft="20dp"
    android:textSize="18dp" />

使用android:gravity="right"改变TextView的位置。

只需添加您要指定的填充-:

android:paddingLeft="40dp"

<Button
            android:id="@+id/goToPersonalPage"
            android:layout_width="145dp"
            android:layout_height="50dp"
            android:paddingLeft="40dp"
            android:layout_marginLeft="20dp"
            android:background="@drawable/button_oval"
            android:text="@string/memberButton"
            android:textColor="#29395e"
            android:textSize="18dp" />