Android ImageButton 分辨率问题

标签 android layout size resolution imagebutton

我希望在程序顶部有两个按钮,引导用户进行不同的 Activity 。我在格式化方面遇到了很多麻烦。

如何才能使按钮根据屏幕尺寸按比例拉伸(stretch)?现在,它们在一种屏幕尺寸上看起来不错,然后我会切换到不同的屏幕尺寸,它会显得全部被弄脏或拉伸(stretch)。我已经尝试了所有不同的 ScaleType,但似乎都没有什么区别。我还使用 Shubhayu's answer 按比例将所有图像保存为关于 xhdpi、hdpi 等的正确尺寸。 .

这是我到目前为止的代码:

<LinearLayout 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"
android:background="@drawable/brushed_metal_background_dark"
tools:context=".HomeActivity" >

<ImageButton
    android:id="@+id/incidentsSelect"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:background="@drawable/incident_bar2"
    android:contentDescription="Incidents"
    android:onClick="chooseIncident"
    android:scaleType="center" />

<ImageButton
    android:id="@+id/operationalPeriodsSelect"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:background="@drawable/operationalperiod_bar2"
    android:contentDescription="Operational Periods"
    android:onClick="chooseOperationalPeriod"
    android:scaleType="fitCenter" />

最佳答案

android:background 更改为 android:src 以保持宽高比。使用 android:scaleType="centerInside" 使整个图像适合按钮区域,并可以选择使用 android:adjustViewBounds=true 删除空白区域。示例:

<ImageButton
    android:id="@+id/incidentsSelect"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:contentDescription="Incidents"
    android:onClick="chooseIncident"
    android:src="@drawable/incident_bar2"
    android:scaleType="centerInside"
    android:adjustViewBounds="true"/>

<ImageButton
    android:id="@+id/operationalPeriodsSelect"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:contentDescription="Operational Periods"
    android:onClick="chooseOperationalPeriod"
    android:src="@drawable/operationalperiod_bar2"
    android:scaleType="centerInside"
    android:adjustViewBounds="true"/>

关于Android ImageButton 分辨率问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13904465/

相关文章:

Android 7.0 无法获取 "/"目录下的文件列表

java - 我想根据微调器中选择的值从特定数组列表中获取元素

html - 两个图像在相同代码下以不同大小显示

twitter-bootstrap - Bootstrap 3网格,为所有显示器设置1列大小

log4j - "BufferSize"在 log4j appender 中代表什么?

java - 不幸的是,我的应用程序由于 nullPointerException 已停止工作

android - Nexus 10 camera.release 挂起 30 秒

css - 如何使用CSS将文本放在 "box"的右上角或右下角

html - 液体布局是否仍然相关?

java - 文本在标签内垂直居中