避免图像裁剪并将其投射到固定的图像尺寸

时间:2018-01-02 05:29:07

标签: android image android-layout imageview

我正在尝试从大于或小于此尺寸的图像创建大小为720 * 1280分辨率的图像,而不会裁剪和扭曲它。如果高度或宽度或两者都变小,同时填充空白区域中的颜色。第一张图像到第二张图像。 Initial_Image Final_Final Image

我尝试了这个,但无法获得所需的结果,也没有任何关于颜色选择的想法。

<ImageView
    android:id="@+id/action_image"
    android:scaleType="fitXY"
    android:adjustViewBounds="true"
    android:layout_width="720dp"
    android:layout_height="1280dp" />

2 个答案:

答案 0 :(得分:0)

//使用picasso库

尝试此代码
int finalHeight, finalWidth;
    final ImageView iv = (ImageView)findViewById(R.id.scaled_image);
    ViewTreeObserver vto = iv.getViewTreeObserver();
    vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
        public boolean onPreDraw() {
            iv.getViewTreeObserver().removeOnPreDrawListener(this);
    Picasso.with(context).load("url").resize(iv.getMeasuredWidth(), iv.getMeasuredHeight()).into(imageView);
            return true; 
        }
    });

答案 1 :(得分:0)

scaleType fitXY可能会扭曲您的图像。将scaleType fitCenter与您选择的背景颜色一起使用。

<ImageView
    android:layout_width="720dp"
    android:layout_height="1280dp"
    android:background="#0f0"
    android:scaleType="fitCenter"
    android:src="@drawable/sample_good_perfect" />