【问题标题】:how to keep aspect ratio with different android devices如何保持不同安卓设备的纵横比
【发布时间】:2013-02-16 04:25:16
【问题描述】:

所以我试图将图像放在滚动视图中并让图像拉伸以适应不同尺寸的屏幕。它会水平拉伸,但垂直方向总是乱七八糟。

我已经阅读了很多有类似问题的人的页面,但他们的解决方案对我不起作用。我已经使用不同的scaleTypelayout_widthlayout_height 尝试了所有可能的不同组合,并尝试改变其他东西。下面的代码显示了我最接近它的工作,使用scaleType="centerCrop"。它是唯一一个按比例垂直拉伸图像的功能,但它会从顶部和底部切掉一大块图像,它会上下滚动图像,但只显示中间部分。

图片是 480x5500 的 jpeg,如果这很重要的话。最初在我开始搞砸这一切之前,该应用程序在我的手机上运行良好,但后来我意识到当我在平板电脑上尝试时图像被压缩了。必须有一种方法可以在 xml 中执行此操作,对吗?我真的不想对 java 代码部分中的图像做任何事情。另外我希望能够只使用一张图片来做到这一点,我不想为不同的屏幕尺寸使用不同的图片。请帮忙,谢谢。

<?xml version="1.0" encoding="utf-8"?>

<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ImageView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop"
        android:src="@drawable/paper" />
</ScrollView>    

【问题讨论】:

标签: android image aspect-ratio


【解决方案1】:

也许对你有帮助, 将高度和宽度都设为wrap_content of ImageView

  android:layout_width="wrap_content"
  android:layout_height="wrap_content"

这里不需要ScrollView

【讨论】:

  • 没用,我尝试在高度和宽度上使用 wrap_content,有和没有 ScrollView,都不起作用。
【解决方案2】:

尝试使用自定义 ImageView,例如此处提到的 AspectRatioImageView:

https://stackoverflow.com/a/4688335/944070

【讨论】:

    【解决方案3】:

    下一个样本比你要求的要多:

    hotview.sample

    它使图像适合屏幕,此外它还允许使用捏合手势放大/缩小。

    【讨论】:

      猜你喜欢
      • 2014-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-25
      • 2017-11-13
      • 2010-12-17
      • 1970-01-01
      • 2019-08-03
      相关资源
      最近更新 更多