如何在不拉伸的情况下将位图显示为视图背景 android
How to display a bitmap as background of view without stretching android
我想在不拉伸的情况下将位图设置为视图背景,并且我不想将视图宽度和高度更改为 wrap-content。我想将视图的宽度和高度保持为匹配父级。我已经设置了如下视图的背景,其中 mDrawingView 是扩展视图的自定义视图。
Bitmap tempBitmap = BitmapFactory.decodeFile(copy.getAbsolutePath());
mDrawingView.setBackground(new BitmapDrawable(getResources(), tempBitmap));
我的布局文件如下所示,
<MyPackageName.DrawingView
android:id="@+id/drawing_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"/>
请注意我没有使用 imageview。
请给我一些建议?
如果您使用的是图像视图,那么您可以像下面那样做
ImageView.ScaleType
可以是 CenterCrop、fit 等你可以在这里阅读它是 android 原生支持
https://developer.android.com/reference/android/widget/ImageView.ScaleType.html
你可以做到
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setImageResource(R.drawable.res_id);
其中 res_id
是 drawable 文件夹中的资源 ID。
我更改了我的 DrawingView,它扩展了 Imageview 而不是 View,然后像下面这样设置位图
Bitmap bitmap = BitmapFactory.decodeFile(copy.getAbsolutePath());
mDrawingView.setImageBitmap(bitmap);
现在位图在 imageview 上显示时无需拉伸,效果完美。
感谢您宝贵的意见和回答。
我想在不拉伸的情况下将位图设置为视图背景,并且我不想将视图宽度和高度更改为 wrap-content。我想将视图的宽度和高度保持为匹配父级。我已经设置了如下视图的背景,其中 mDrawingView 是扩展视图的自定义视图。
Bitmap tempBitmap = BitmapFactory.decodeFile(copy.getAbsolutePath());
mDrawingView.setBackground(new BitmapDrawable(getResources(), tempBitmap));
我的布局文件如下所示,
<MyPackageName.DrawingView
android:id="@+id/drawing_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"/>
请注意我没有使用 imageview。
请给我一些建议?
如果您使用的是图像视图,那么您可以像下面那样做
ImageView.ScaleType
可以是 CenterCrop、fit 等你可以在这里阅读它是 android 原生支持 https://developer.android.com/reference/android/widget/ImageView.ScaleType.html
你可以做到
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setImageResource(R.drawable.res_id);
其中 res_id
是 drawable 文件夹中的资源 ID。
我更改了我的 DrawingView,它扩展了 Imageview 而不是 View,然后像下面这样设置位图
Bitmap bitmap = BitmapFactory.decodeFile(copy.getAbsolutePath());
mDrawingView.setImageBitmap(bitmap);
现在位图在 imageview 上显示时无需拉伸,效果完美。
感谢您宝贵的意见和回答。