2014-01-08 77 views
0

我在canvas上绘制图像。但是它将图像显示在center.But上,但我想将图像放在整个画布上而不缩放图像。如何在画布上合适图像而不会丢失图像的质量

@Override 
    protected void onDraw(Canvas canvas) { 
     canvas.save(); 
     canvas.drawBitmap(mBitmap, 
       (BaseActivity.width/2) - mBitmap.getWidth()/2, 
       (BaseActivity.height/2) - mBitmap.getHeight()/2, 
       mPaint); 

     canvas.restore(); 
     Paint paint = new Paint(); 
     paint.setAntiAlias(true); 
     paint.setColor(Color.RED); 
     paint.setTextSize(12.0f); 

    } 

如果有人有想法,请回复。谢谢提前。

+0

尝试使用canvas.drawBitmap(mBitmap,0,0,mPaint ); – Piyush

+0

thaks for reply @piyus gupta.Already use this method image is drawing on top in canvas。 – jagdish

+0

但是,当使用您的代码时,它始终显示在中心 – Piyush

回答

0

我希望你扩展视图类... 使用getWidth()getHeight()得到相应的尺寸和绘制位图...

private Bitmap bitmap; 
    private Paint mPaint; 
    private Rect imageRect; 


    @Override 
    protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 
     if(imageRect == null) { // I think it is always false as we are intializing it onSizeChanged 
      imageRect = new Rect(0, 0, getWidth(), getHeight()); 
     } 
     canvas.drawBitmap(bitmap, null, imageRect, mPaint); 
    } 

    @Override 
    protected void onSizeChanged(int w, int h, int oldw, int oldh) { 
     super.onSizeChanged(w, h, oldw, oldh); 
     imageRect = new Rect(0, 0, w, h); 
    } 
+0

感谢您的回复@Gopal,它显示质量差的图像。 – jagdish

+0

我们可以在画布上显示图像的实际尺寸吗? – jagdish

+0

如何在70毫米屏幕上显示小图像而不模糊或质量差?显然你的图像会变差,当你放大它... –

相关问题