0

我正在尝试设置我从网上下载的图像。我正在使用一个名为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)

在此处输入图像描述

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

在此处输入图像描述

4

3 回答 3

0

ImageView具有刻度类型功能。检查ImageView.ScaleType。我认为centerInside或者fitCenter是你正在寻找的东西。

更新

抱歉,起初没有意识到您的身高是固定的。centerCrop应该是答案。

于 2014-06-01T09:16:34.410 回答
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 是图像集的最大宽度。结果是可以接受的,编辑:图像完全居中。

于 2014-06-01T10:00:12.193 回答
0

我在父布局上使用“paddingLeft”和“paddingRight”实现了这一点;同时将负值应用于子布局/ ImageView 的填充和边距。“android:clipToPadding”标志必须为假以防止剪辑。

<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"
        ...>
于 2018-11-23T23:57:18.083 回答