gpt4 book ai didi

java - 将按钮的背景设置为图像,根据需要缩放

转载 作者:行者123 更新时间:2023-12-01 11:54:06 25 4
gpt4 key购买 nike

我有一个简单的布局:

    <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/button_background"
android:text="Button"
android:gravity="center"
android:textColor="#FFFFFF" />

<Button
android:id="@+id/button6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Button" />
</LinearLayout>

这是输出:

但我希望带有背景的按钮保持与没有图像作为背景(右侧的按钮)相同的大小。基本上,我想将按钮“放置”在图像上,以便图像的中心位于按钮背景上,但按钮不会调整大小以适应整个背景。

我在按钮上尝试了 android:scaleType="centerCrop"但它没有改变任何东西。感谢任何帮助,谢谢

enter image description here

编辑按钮的大小需要wrap_content,因为文本是动态的

最佳答案

按钮宽度和高度设置为wrap_content。在这种情况下,背景图像也是一种内容。只需将宽度和高度更改为您想要的值即可:

    <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<Button
android:id="@+id/button5"
android:layout_width="100dp"
android:layout_height="50dp"
android:layout_weight="1"
android:background="@drawable/button_background"
android:text="Button"
android:gravity="center"
android:textColor="#FFFFFF" />

<Button
android:id="@+id/button6"
android:layout_width="100dp"
android:layout_height="50dp"
android:layout_weight="1"
android:text="Button" />
</LinearLayout>

如果您希望所有按钮具有相同的大小,请考虑创建一个 dimen 值:

迪门

    <resources>
<dimen name="button_width">100dp</dimen>
<dimen name="button_height">50dp</dimen>
</resources>

布局

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<Button
android:id="@+id/button5"
android:layout_width="@dimen/button_with"
android:layout_height="@dimen/button_height"
android:layout_weight="1"
android:background="@drawable/button_background"
android:text="Button"
android:gravity="center"
android:textColor="#FFFFFF" />

<Button
android:id="@+id/button6"
android:layout_width="@dimen/button_with"
android:layout_height="@dimen/button_height"
android:layout_weight="1"
android:text="Button" />
</LinearLayout>

此外,请考虑使用ImageButton来实现您的目的。

ImageButton

编辑

试试这个:

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/your_background"
android:layout_alignStart="@+id/buttonId"
android:layout_alignEnd="@+id/buttonId"
android:layout_alignTop="@+id/buttonId"
android:layout_alignBottom="@+id/buttonId"/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/buttonId"/>

</RelativeLayout>

此外,向 ImageView 添加一个 scaleType 使其居中、拉伸(stretch)等等......

android:scaleType="center"

编辑2

向按钮添加填充对我来说很有效:

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon_settings"
android:layout_alignStart="@+id/buttonId"
android:layout_alignEnd="@+id/buttonId"
android:layout_alignTop="@+id/buttonId"
android:layout_alignBottom="@+id/buttonId"
android:scaleType="center"/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:paddingTop="20dp"
android:paddingBottom="20dp"
android:text="This is a button with a very long text that may take up multiple lines and stuff"
android:id="@+id/buttonId"/>

</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon_settings"
android:layout_alignStart="@+id/buttonId2"
android:layout_alignEnd="@+id/buttonId2"
android:layout_alignTop="@+id/buttonId2"
android:layout_alignBottom="@+id/buttonId2"
android:scaleType="center"/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is a button with a very long text that may take up multiple lines and stuff"
android:id="@+id/buttonId2"/>

</RelativeLayout>

Screenshot two buttons

注意:您在屏幕截图中看不到 paddingStart 和 paddingEnd,但它工作得很好。

关于java - 将按钮的背景设置为图像,根据需要缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28568438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com