按钮包含图像时无法调整位置
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" />
我有一个动态判断,所以我把drawable设置在java左边。
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" />