将随机大小的图像拟合到ImageView中

时间:2012-12-30 00:14:58

标签: android imageview

我有一个imageview,后面会包含一些随机大小的图像 我想用图像填充imageview但是 保持比例(所以不要使用比例类型FITXY或centercrop因为它修剪了我的部分图像)

我该怎么做?

在此测试代码中,我的图像左侧和右侧有空格

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"


     >

   <ImageView
        android:id="@+id/imgTest"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:adjustViewBounds="true"
        android:scaleType="fitCenter"

        android:src="@drawable/test"
      />

2 个答案:

答案 0 :(得分:0)

用矩阵和屏幕的高度/宽度解析

private Bitmap resize(Bitmap bm, int w, int h)
    {
        int width = bm.getWidth();
        int height = bm.getHeight();
        int newWidth = w;
        int newHeight = h;
        float scaleWidth = ((float) newWidth) / width;
        float scaleHeight = ((float) newHeight) / height;

        Matrix matrix = new Matrix();
        matrix.postScale(scaleWidth, scaleHeight);
        Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, true);

        return resizedBitmap;
    }

答案 1 :(得分:0)

试试这个:

<ImageView
    android:id="@+id/imgTest"
    android:layout_width="wrap_content"
    android:layout_height="100dp"
    android:layout_alignParentLeft="true"
    android:paddingRight="20dp"
    android:scaleType="fitStart"
    android:src="@drawable/test"/>