【问题标题】:android image size from web来自网络的android图像大小
【发布时间】:2013-05-02 03:39:05
【问题描述】:

我正在尝试在我当前的应用程序上支持 mdpi、hdpi 和 xhdpi。问题是我正在从网络上获取图像(个人资料图片)。我正在使用带有height = 200dp 的图像视图,即使我已经阅读了大量关于 dp 和 dpi 的教程和文档,我仍然没有得到它们。

所以我的问题是,在 hdpi 手机(atrix 2)上,图像大约占屏幕的 1/3,这对我来说是完美的。但在 mdpi (galaxy ace) 上几乎需要 2/3。

为图像视图(来自网络,而不是资源)设置高度以支持 mdpi 和 hdpi 的最佳方法是什么。

谢谢

<ImageView
    android:id="@+id/expositor_image"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:layout_below="@+id/expositor_info_header"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="-27dp"
    android:contentDescription="@string/misc_placeholder"
    android:scaleType="centerCrop" />

基本上我的问题是 200dp 在 mdpi 和 hdpi 上占用不同的屏幕百分比

【问题讨论】:

    标签: android height imageview


    【解决方案1】:

    首先,您需要在 ImageView 的 xml 定义中设置一个 scaleType(尝试“center_inside”)。

    如果您提供一些代码(特别是您的布局 xml 文件),我可能会提供更多帮助。

    更新

    现在,这可能不完全是您的问题,但它是其中的一部分。 DP(或 DPI,它们是同一件事)调整屏幕密度(每英寸像素数),而不是屏幕尺寸。这意味着 200dp x 200dp 的图像在两个屏幕上的英寸大小大致相同,而不是相同的屏幕百分比。

    规格: Atrix 960 × 540 (https://en.wikipedia.org/wiki/Motorola_Atrix_2#Features) 银河王牌 480 x 320 (https://en.wikipedia.org/wiki/Samsung_Galaxy_Ace)

    由于 Atrix 是 hdpi,而 hdpi 是 1.5 倍数,因此 200dp 将占用 300 像素的实际像素,或者您指出的大约 1/3 (300/960) 屏幕。

    在 mdpi Ace 上,200dp 平均转换为 200px,应该更接近屏幕的 1/2。但是,随着操作栏的添加占用屏幕空间,它可能看起来更多。

    处理像王牌这样的非常小的屏幕的最佳方法......好吧,我的正常解决方案是不太支持它们,至少在我的第一次通过时不是,因为它们非常罕见。但是,如果您愿意,最好的方法是提供替代布局。

    例如:

    创建一个名为 layout-large 的文件夹(或类似名称,请参阅:http://developer.android.com/guide/topics/resources/providing-resources.html#Compatibility)。

    复制该文件夹中现有的 xml 文件。 (名称必须完全相同)

    修改 layout/ 中的文件,使其在较小的屏幕上效果更好。

    基本上,如果设备具有“大”屏幕或以上(现在基本上是标准),它将使用 layout-large/ 文件夹中的布局。

    否则,它将使用layout/文件夹中的默认布局。

    如果您认为这种解释不是实际发生的情况,请提供屏幕截图以验证布局实际上没有按应有的方式运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-17
      • 2014-03-19
      • 2015-07-01
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多