如何保持与不同Android设备的宽高比

时间:2013-02-16 04:25:16

标签: android image aspect-ratio

所以我试图将图像放在滚动视图中并使图像拉伸以适应不同大小的屏幕。它会水平拉伸,但垂直方向总是搞砸了。

我已经阅读了很多有类似问题的人,但他们的解决方案从来都不适合我。我尝试使用不同的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>    

3 个答案:

答案 0 :(得分:0)

可能对你有帮助, 同时wrap_content

的高度和宽度ImageView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"

并且此处不需要ScrollView

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

下一个样本超出了您的要求:

hotoview.sample

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