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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了避免图像裁剪并将其投射到固定的图像尺寸相关的知识,希望对你有一定的参考价值。

我正在尝试从大于或小于此尺寸的图像创建大小为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" />
答案

//用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; 
        }
    });
另一答案

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" />

以上是关于避免图像裁剪并将其投射到固定的图像尺寸的主要内容,如果未能解决你的问题,请参考以下文章

IOS - 将背景图像缩放到不同的屏幕尺寸并将标签放在固定位置上

PHP裁剪图像以固定宽度和高度而不丢失尺寸比

推荐不同尺寸

android裁剪图像太小

ios swift将图像裁剪为设备大小

Android图像视图顶部裁剪