gpt4 book ai didi

android - 有什么方法可以使按钮上的图像自动调整大小以适合屏幕?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:00:35 26 4
gpt4 key购买 nike

所以我有四个按钮,它们的高度和宽度都使用 match_parent。我使用“drawableTop”属性在按钮本身内包含图像,我想这样做,所以我不需要为每个分辨率单独的图像。这是我拍摄的肖像截图。稍后会介绍风景。

Buttons-Portrait

所以这看起来不错,但我只有 4 种不同的图像分辨率,在我的手机上尝试它们并没有产生积极的结果。有什么办法可以让我只拥有一张更大的图像,比如说“可绘制”并缩小以适应所有分辨率?如果没有,我该怎么办?我目前涵盖了 hdpi、ldpi、mdpi 和 xhdpi,但我想涵盖所有范围。存在哪些其他密度?

如果我能实现自动调整大小,我也不必禁止用户使用 Landscape:

Buttons-Landscape

此外,这是 xml:

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:baselineAligned="false"
android:orientation="horizontal" >

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical"
tools:ignore="NestedWeights" >

<Button
android:id="@+id/bMap"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawableTop="@drawable/ic_camera"
android:text="Button" />
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >

<Button
android:id="@+id/bCamera"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawableTop="@drawable/ic_camera"
android:text="Button" />
</LinearLayout>
</LinearLayout>

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:baselineAligned="false"
android:orientation="horizontal" >

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical"
tools:ignore="NestedWeights" >

<Button
android:id="@+id/bGallery"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawableTop="@drawable/ic_camera"
android:text="Button" />
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >

<Button
android:id="@+id/bPlants"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawableTop="@drawable/ic_camera"
android:text="Button" />
</LinearLayout>
</LinearLayout>

最佳答案

据我所知,使用具有可绘制背景的 Button 并不容易,因为可绘制对象不会随 View 缩放。

我相信如果您将 Button 更改为 ImageButton,您可以做到这一点,它提供了更多缩放图像的选项。

ImageButton 类公开了 android:scaleType 属性,您可以使用 centerInside 来缩小图像以适应 ImageButton 的边界。

此外,对于 ImageButton,您应该使用 android:src 而不是 android:drawable 来定义图像。

不过,我不确定是否有办法在 ImageButton 上设置文本。您可能需要更高级的布局,包括 LinearLayout 中的 ImageView 和 TextView,然后将 LinearLayout 视为按钮(添加 onClick 等)。

关于android - 有什么方法可以使按钮上的图像自动调整大小以适合屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12902266/

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