【问题标题】:Image get clipped while rotating canvas in android?在android中旋转画布时图像被剪裁?
【发布时间】:2013-04-01 06:49:24
【问题描述】:

我正在开发一个应用程序,我正在使用以下代码旋转图像。

Bitmap bmpOriginal = BitmapFactory.decodeResource(this.getResources(), R.drawable.image2); 
Bitmap bmResult = Bitmap.createBitmap(bmpOriginal.getWidth(), bmpOriginal.getHeight(), Bitmap.Config.ARGB_8888); 
    Canvas tempCanvas = new Canvas(bmResult); 
    tempCanvas.rotate(-10, bmpOriginal.getWidth()/2, bmpOriginal.getHeight()/2); 
tempCanvas.drawBitmap(bmpOriginal, 0, 0, null);

mImageView.setImageBitmap(bmResult);

取自Rotating a drawable in Android

但图像会从类似于this 的边缘被剪裁

我已经搜索了互联网,但我无法解决它。我知道我必须增加 bmResult 的大小。我也尝试过这样做,但仍然有一些边缘被剪掉了。

如果任何机构可以给我线索或解决以下问题是我的 Imageview xml 代码

<ImageView
            android:id="@+id/img"
            android:layout_width="45dp"
            android:layout_height="45dp" >

</ImageView>

谢谢

【问题讨论】:

    标签: android android-layout bitmap android-canvas android-imageview


    【解决方案1】:

    对我有用的另一种方法是将边距设置为负数:

        params.setMargins(-350, -350, -350, -350);
        final ImageView img1 = new ImageView(this);
        img1.setScaleType(ScaleType.FIT_CENTER);
        linearLayoutBackground.addView(img1, params);
    

    可能不是最佳做法,但它在紧要关头起到了作用。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,这段代码对我有用。试试看。

      Bitmap bmpOriginal = BitmapFactory.decodeResource(this.getResources(), R.drawable.image2); 
              Matrix mat = new Matrix();
              mat.postRotate(-10);
              Bitmap bMapRotate = Bitmap.createBitmap(bmpOriginal, 0, 0, bmpOriginal.getWidth(), bmpOriginal.getHeight(), mat, true);
              mImageView.setImageBitmap(bMapRotate);
      

      【讨论】:

        【解决方案3】:

        感谢@Alan 的回答 我得到了解决方案,我只是在画布上的 (10,10) x,y 上旋转后绘制图像。

        `tempCanvas.drawBitmap(bmpOriginal, 10, 10, null);`
        

        【讨论】:

          猜你喜欢
          • 2013-04-05
          • 1970-01-01
          • 1970-01-01
          • 2014-02-03
          • 1970-01-01
          • 2018-10-23
          • 1970-01-01
          • 2018-10-22
          • 2017-10-23
          相关资源
          最近更新 更多