【问题标题】:ImageView, why different size?ImageView,为什么大小不同?
【发布时间】:2013-03-19 14:01:15
【问题描述】:

第一件事,我知道很多人都问过同样的问题,但这个问题几乎相同,但我还有几个问题。

我有一个 48px x 48px 的图像,所以如果我在 ImageView 中使用

设置这个图像
layout_width="wrap_content"
layout_height="wrap_content"

然后图像看起来更大,但如果我使用以下固定尺寸,它会变小

layout_width="48dp"
layout_height="48dp"

我认为它现在以 48dp 正确显示(不是像素化?),但是如果我使用 wrap_content 为什么它会变大?如果通过 wrap_content 的图像大小是正确的,那么使用 dp 有什么意义(如果它使图像变小)?

【问题讨论】:

  • 如何将图像设置为 imageView ?
  • dppx 不一样
  • 您可能将背景设置为图像源,这可能是它被拉伸的原因

标签: java android


【解决方案1】:

48dp(或48dip)代表“密度无关像素”。这意味着无论屏幕密度和大小如何,Android 屏幕上显示的图像的物理尺寸都应该相同。为了支持这一点,Android 会根据屏幕密度调整显示的实际像素大小。不同尺寸的结果会因设备而异。

dp 单位到屏幕像素的转换为:pixels = dps * (density / 160)。例如,在 240 dpi 屏幕上,1dp 将等于 1.5 个物理像素。强烈建议使用 dp 单位来定义应用程序的 UI,以确保您的 UI 在不同屏幕上正确显示。

【讨论】:

    【解决方案2】:

    这可能是因为您没有明确设置scaleType。在 XML 中设置你的 scaleType 如下,你应该没问题:

    android:scaleType="center"
    

    【讨论】:

    • 是的,它需要 scaleType。我使用了 scaleType="fitXY"。谢谢
    • 如果我的回答对您有所帮助,请随时使用旁边的空复选标记将其标记为已接受。
    【解决方案3】:

    试试这个

    <ImageView
        android:id="@+id/seprator2"
        layout_width="48dp"
        layout_height="48dp"
        android:scaleType="fitXY"
        android:src="@drawable/your_image" />
    

    如果它仍然显示很小,那么你的图像必须在它周围包含 alpha。

    【讨论】:

      【解决方案4】:

      如果图像大于视图,则可以使用以下方法对其进行缩放:

      android:scaleType="center"
      

      【讨论】:

        猜你喜欢
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-18
        • 1970-01-01
        • 1970-01-01
        • 2021-08-24
        • 1970-01-01
        相关资源
        最近更新 更多