【问题标题】:Avoiding image cropping and casting it to a fixed image size避免图像裁剪并将其投射到固定的图像尺寸
【发布时间】:2018-01-02 05:29:07
【问题描述】:
我正在尝试从大于或小于此尺寸的图像创建分辨率为 720*1280 的图像,而不会对其进行裁剪和扭曲。如果在此过程中高度或宽度或两者都变小,请在空白区域填充颜色。第一个图像到第二个图像。
我试过了,但无法得到想要的结果,而且对颜色选择一无所知。
<ImageView
android:id="@+id/action_image"
android:scaleType="fitXY"
android:adjustViewBounds="true"
android:layout_width="720dp"
android:layout_height="1280dp" />
【问题讨论】:
标签:
android
image
android-layout
imageview
【解决方案1】:
//用毕加索库试试这段代码
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;
}
});
【解决方案2】:
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" />