调整图像大小以填充屏幕宽度

时间:2014-06-01 09:07:04

标签: android android-imageview aspect-ratio android-bitmap ion-koush

我正在尝试设置我正在从网上下载的图像。我正在使用一个库来帮助我这样做ion。问题是我需要调整图像大小以适应我的屏幕并保持纵横比。高度似乎工作正常,但我想设置位图的宽度以适应设备的整个宽度,同时保持纵横比。但它不起作用,双方的形象都缩短了......

  <ImageView
    android:id="@+id/imageView"
    android:layout_width="fill_parent"
    android:layout_height="@dimen/_height" />

代码:

DisplayMetrics metrics = getResources().getDisplayMetrics();
mWidth = metrics.widthPixels;
mHieght = (int) getResources().getDimension(R.dimen._height);
Ion.with(imageView).resize(mWidth, mHieght).load(url)

enter image description here

编辑: 这是android:scaleType="centerCrop"

enter image description here

3 个答案:

答案 0 :(得分:0)

ImageView具有比例类型功能。检查ImageView.ScaleType。我认为centerInsidefitCenter正是您所寻找的。

更新

抱歉,我们一开始并没有意识到你有一个固定的高度。 centerCrop应该是答案。

答案 1 :(得分:0)

如果您的图像具有已知的最大尺寸,则可以将布局的宽度设置为等于图像集的最大宽度,然后将所有图像设置为居中。这对我有用:

<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">

<RelativeLayout
    android:layout_width="1920px"
    android:layout_height="fill_parent"
    android:layout_gravity="center">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView"
        android:background="@drawable/your_image" />
</RelativeLayout>
</FrameLayout>

其中1920px是图像集的最大宽度。 结果是可以接受的,编辑:图像完全居中。

答案 2 :(得分:0)

我在父级布局上使用“ paddingLeft”和“ paddingRight”实现了这一目标;同时为子版面/ ImageView的填充和边距应用负值。 “ android:clipToPadding”标志必须为false,以防止剪切。

<LinearLayout
    ...
    android:paddingLeft="10sp"
    android:paddingRight="10sp"
    android:clipToPadding="false"
    ...>

    <ImageView
        android:layout_marginLeft="-10sp"
        android:layout_marginRight="-10sp"
        android:paddingRight="-10sp"
        android:paddingLeft="-10sp"
        ...>