0

我有这个功能,通过这个功能,我可以显示一个稍微旋转的图像。我正在尝试在位图周围显示白色边框。

Matrix m = new Matrix();
        m.postRotate( rotation, center.x, center.y );
        m.postTranslate( ( position.x - center.x ) - xOffset , position.y - ( center.x ) );

        //  set the current position to the updated position
        positionMatrix.set( m );            
        renderAnimation();          
        c.drawBitmap( this.bitmap , positionMatrix, paint );

我正在尝试使用此功能添加白色边框:参考:stackoverflow 边框

    RectF targetRect = new RectF(left+10, top+10, left + scaledWidth, top + scaledHeight);
    Bitmap dest = Bitmap.createBitmap(this.bitmap.getWith() +20, this.bitmap.getHeight() +20, this.bitmap.getConfig());
    Canvas canvas = new Canvas(dest);
    canvas.drawColor(Color.WHITE);
    canvas.drawBitmap(this.bitmap, null, targetRect, null);
c.drawBitmap( this.bitmap , positionMatrix, paint );

但是,不起作用,可以帮助我

4

1 回答 1

3

我认为您应该按照以下步骤操作:

  1. 创建一个宽度 = yourImageWidth + boderThick 和 height= yourImageHeight + boderThick 的位图
  2. 画布画一个白色矩形(先画你的背景)
  3. 画布绘制您的图像(您需要将图像居中)

也许你在计算边时犯了错误,或者绘制的顺序错误。请记住在绘图时使用相同的画布。在您的代码中,我看到您使用 c.draw 和 canvas.draw ...这可能会导致问题。

参考下面的代码:

 Paint paint = new Paint();
 paint.setColor(Color.WHITE);
 paint.setStrokeWidth(3);
 canvas.drawRect(0, 0, 200, 200, paint);//draw your bg
 canvas.drawBitmap(bitmap, 20, 20, paint);//draw your image on bg

抱歉,我没有太多时间来检查您的计算尺寸。我希望这会有所帮助。

于 2013-05-30T04:59:44.543 回答