如何缩放按钮的背景?

Posted

技术标签:

【中文标题】如何缩放按钮的背景?【英文标题】:How can I scale the background of a button? 【发布时间】:2012-01-03 16:01:21 【问题描述】:

我有以下按钮:

<Button
android:id="@+id/buttonok"
android:layout_
android:layout_
android:drawableLeft="@drawable/back_no_save"
android:text="OK" />

它的出现是:

如何缩小我的可绘制对象并显示一个小箭头?

【问题讨论】:

【参考方案1】:

您可以使用ImageButton 并尝试android:scaleType

ImageView.ScaleType

【讨论】:

我需要“OK”文本,所以我不能使用 ImageButton。【参考方案2】:

我不认为你可以从 xml。没有 xml 属性可以对按钮进行缩放。不过,您可以通过以下方式以编程方式进行操作:

Bitmap originalBitmap= BitmapFactory.decodeResource(getResources(), R.drawable.icon);
Bitmap scaledBitmap=Bitmap.createScaledBitmap(originalBitmap, newWidth, newHeight, true);
txt.setBackgroundDrawable(new BitmapDrawable(bit));

【讨论】:

【参考方案3】:

您可以缩小可绘制对象指向的实际图形。

【讨论】:

使用 ScaleDrawable 怎么样?【参考方案4】:

如果您不想处理Bitmap.createScaledBitmap,那么在我看来,最好的方法是创建自己的组件。 例如,您可以扩展RelativeLayout 并将ImageView 放入其中。

【讨论】:

【参考方案5】:

我知道这是一篇旧帖子,但我做了这样的事情:

<LinearLayout
    android:layout_
    android:layout_
    android:padding="16dp"
    android:id="@+id/XXXXXXXXXXXX"
    android:orientation="horizontal">
    <ImageView
        android:src="@drawable/XXXXXXXXXXXX"
        android:layout_
        android:layout_
        android:scaleType="centerInside"
        android:id="@+id/XXXXXXXXXXXXXXXX"/>
    <TextView
        android:id="@+id/XXXXXXXXXXXXXX"
        android:layout_
        android:layout_
        android:text="XXXXXXX"
        android:layout_gravity="center"/>
</LinearLayout>

【讨论】:

以上是关于如何缩放按钮的背景?的主要内容,如果未能解决你的问题,请参考以下文章

为啥按钮背景缩放不正确?

将视图背景设置为能够缩放的图像

Flex网格和背景图像并排响应/缩放问题

UIButton 背景图像水平缩放以填充同时保持纵横比

删除按钮位于 UITableView 样式分组单元格背景之外

iOS 如何调整/缩放按钮图像?