带边框的Android位图

时间:2013-05-30 04:45:44

标签: android bitmap

我有这个功能,有了这个功能,我可以用一点旋转来显示图像。 我正试图在位图周围显示一个白色边框。

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 border

    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 );

但是,不行,有些人可以帮助我

1 个答案:

答案 0 :(得分:3)

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

  1. 创建一个宽度= yourImageWidth + boderThick和height = yourImageHeight + boderThick
  2. 的位图
  3. 画布绘制一个白色矩形(首先绘制背景)
  4. 画布绘制图像(您需要居中图像)
  5. 也许你在计算方面时犯了一个错误,或者画错了顺序。记得在绘图时使用相同的画布。在你的代码中我看到你使用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
    

    抱歉,我没有太多时间检查您的计算尺寸。我希望这可以提供帮助。