Android ImageButton:尝试将自定义Drawable置于ImageButton的中间

时间:2013-04-25 23:10:28

标签: android android-layout android-widget android-button

好的,我们走了......

我创建了一个自定义Drawable类,它将创建一个带有图标和下面一个数字的drawable。这个drawable的背景是透明的。

我的ImageButtons的宽度可以变化,从大约90像素到大约1044.我试图以一定的宽度/高度显示可绘制的并让它在每个按钮中居中。所以,如果我有一个宽度为90px的按钮,那么图标和数字都会居中,在按钮周围很少有填充。如果按钮现在是500px宽,则drawable的大小相同并且在按钮中居中。

到目前为止,我已经搞砸了android:scaleType,没什么。我有drawable公开一个方法,允许调用者指定边界:

public void setBounds(int left, int top, int right, int bottom)
{
    super.setBounds(left, top, right, bottom);
    }

现在调用者将边界设置为32x32。我希望以某种方式我可以强制按钮尊重drawable的边界大小,只在该按钮的中心呈现那个大小。这是调用过程。

ImageButton imgButton = (ImageButton)findViewById(R.id.button);
    imgButton.setScaleType(ImageView.ScaleType.CENTER_INSIDE);

    Drawable drawable = new CustomDrawable();
    drawable.setBounds(0, 0, 32, 32);

    imgButton.setImageDrawable(drawable);

我尝试的所有内容都会在按钮上拉伸可绘制内容。任何想法帮派?

以下是布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

<ImageButton
    android:id="@+id/button"
    android:layout_width="1044dp"
    android:layout_height="60dp"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:scaleType="center"/>

0 个答案:

没有答案