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"
并且会保持原来的比例
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"
并且会保持原来的比例