Android ImageView 拉伸背景

Android ImageView strecthes background

TL;DR: 将可绘制对象设置为 ImageView 时看起来不错(见附件 - 顶部)。用位图 (setImageBitmap) 替换它并再次设置为原始 (setImageBitmap(null) & setBackgroundResource(R...)) 导致可绘制对象被拉伸(见附件 - 底部)。

ImageView 元素在启动应用程序时有一个资源图像,它看起来很好,没有拉伸。如果用户使用另一个 activity 放置他的标志,ImageView 用于显示他的标志的小缩略图,ImageView 被使用 setImageBitmap() 覆盖。

当用户保存草稿并且所有字段都被清空时,就会出现问题。清空包括 setImageBitmap(null) 和 setBackGroundResource(R.drawable.ACTUAL_IMAGE_OF_IMG_VIEW).

重置ImageView(删除位图并设置实际背景)后,背景图像被拉伸(见附图):

改变设备的方向(横向和纵向)图像再次正常。 图片背景还有网格线,这绝对不是资源图的来源

很想听听您解决这个问题的方法。

编辑 - 代码:

// Inserting Bitmap
private void insertSignature(){
    ivSign.setImageBitmap(signature);
}
// setting signature -> null and adding icon again as background
private void ResetInputFields(){
    ivSign.setImageBitmap(null);
    ivSign.setBackgroundResource(R.drawable.sign_pen);
    // TRIED ALREADY:
    // ivSign.setBackground(getResources().getDrawable(R.drawable.sign_pen));
}

添加到您的 imageView 的 XML 代码中

 android:scaleType="fitCenter"

 android:scaleType="centerInside"

并且会保持原来的比例