带抽屉的Android按钮 - 填充

时间:2013-05-30 18:12:31

标签: java android button drawable padding

我想在左边的Button上添加一个Drawable Image并尝试以下操作:

button = new Button(this);
button.setWidth(screen_dimens(0.25, "w")); //25% of screen width
button.setPadding(5, 5, 0, 5);
Drawable img = getResources().getDrawable(R.drawable.image);
button.setCompoundDrawablesWithIntrinsicBounds(img, null, null, null);  

但是我希望在抽屉和按钮边框之间的左边有一个填充物。不幸的是,没有。
有什么帮助吗?

5 个答案:

答案 0 :(得分:2)

这将生成文本+图像按钮(左图像和后文本)

   <Button
   android:gravity="center_vertical"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"       
   android:id="@+id/button2"
   android:paddingLeft="20dp"
   style="@style/whiteText"
   android:onClick="openWhyAshoka"
   android:drawableLeft="@drawable/arrow"
   android:drawablePadding="50dp"
   android:text="Ankit" />

答案 1 :(得分:2)

您必须通过更改9个切片内容区域或更改可绘制的填充来为您绘制填充:

<padding
    android:bottom="10dp"
    android:left="10dp"
    android:right="10dp"
    android:top="10dp" />

如果使用选择器,则必须将填充规则添加到每个可绘制状态。

答案 2 :(得分:1)

使用此代码:

Drawable image = (Drawable)getResources().getDrawable(R.drawable.onstar_mute_unmute_button_selector);

ImageButton button=(ImageButton)findViewById(R.id.imageButton);

button.setPadding(0,10,5,0);

button.setGravity(Gravity.RIGHT);

button.setBackground(image);

答案 3 :(得分:0)

使用此API调用:

public void setCompoundDrawablePadding (int pad)

答案 4 :(得分:0)

  <Button
            android:id="@+id/otherapps"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/btn_background"
            android:text="@string/other_apps"
            android:layout_weight="1"
            android:fontFamily="cursive"
            android:layout_marginBottom="10dp"
            android:drawableLeft="@drawable/ic_more"
            android:paddingLeft="8dp" //for drawable padding to the left
            android:textColor="@android:color/holo_red_light" />