android - 在不同的屏幕分辨率下保持按钮的圆形图像比例

标签 android image android-layout aspect-ratio android-resolution

我有一个带有圆形背景图像 .png 的图像按钮。我正在不同分辨率的屏幕上对其进行测试,每个屏幕上的显示效果都不同。它们中的大多数通过在一维上拉伸(stretch)圆形来扭曲圆形。

处理这个问题的正确方法是什么?我熟悉最高质量图像所需的 3 个密度级别,但我认为问题在于图像按钮本身或父容器上的布局类型属性。

来自 main.xml 的 fragment ...

<LinearLayout
    android:id="@+id/buttonArea"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:orientation="vertical"
    android:padding="30dp">

    <ImageButton
        android:id="@+id/button1"
        android:background="@drawable/button_inactive"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_gravity="center"/>

</LinearLayout>

从 ImageButton 中删除layout_weight 属性修复了大多数情况,但不是全部。看来填充仍在改变圆的比例。比例类型没有影响。是不是因为我的图像被设置为背景而不是src?

最佳答案

我认为 ImageButton 中的 android:layout_weight="1"是造成这种情况的原因。无论屏幕大小如何,它都会使您的 ImageButton 与屏幕大小相同。

尝试删除该属性。如果这不能解决您的问题,请查看 android:scaleType属性

<ImageButton
    android:id="@+id/button1"
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    android:layout_gravity="center"
    android:background="@null"
    android:src="@drawable/button_inactive"
    android:scaleType="centerInside"/>

关于android - 在不同的屏幕分辨率下保持按钮的圆形图像比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8581516/

相关文章:

java - 有没有办法将 ExpandableListView 嵌套在relativelayout 中?

android - 使用来自 2 个不同布局的相同 Android 绑定(bind)类

android - 在协调器布局中带有 anchor 的 FAB 在 android pre-lollipop 中有额外的边距

android - 异常锁定表面,java.lang.IllegalArgumentException

javascript - 我的第一个 Titanium Mobile 项目中的错误

Android应用架构-Fragment

php - 图像未上传到数据库但保存到文件夹

javascript - WinJS DOM7009 : Unable to decode image at URL

java - 仅使用一台物理设备测试 Android 实时多人游戏

html - 可变尺寸图像,在安装的居中元素内具有最大宽度/高度