如何在不延伸android的情况下显示位图作为视图的背景

时间:2016-05-17 11:35:30

标签: android view bitmap scaling

我想将位图设置为视图背景而不进行拉伸,我想将视图宽度和高度更改为wrap-content。我想将视图的宽度和高度保持为匹配父级。我已经设置了如下所示的视图背景,其中mDrawingView是一个扩展View的自定义视图。

 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。

请建议我任何想法?

3 个答案:

答案 0 :(得分:1)

我更改了我的DrawingView,它扩展了Imageview而不是View,然后设置如下位图

 Bitmap bitmap = BitmapFactory.decodeFile(copy.getAbsolutePath());
  mDrawingView.setImageBitmap(bitmap);

现在位图在imageview上显示而不会拉伸并且工作正常。

感谢您的宝贵意见和答案。

答案 1 :(得分:0)

如果您使用的是图片视图,则可以执行以下操作

 ImageView.ScaleType 

可以是CenterCrop,fit等你可以在这里阅读它的android原生支持 https://developer.android.com/reference/android/widget/ImageView.ScaleType.html

答案 2 :(得分:0)

你可以做到

    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
    imageView.setImageResource(R.drawable.res_id);

其中res_id是可绘制文件夹中的资源ID。