使用带有矩阵的Canvas.drawBitmap会产生错误的大小

时间:2013-09-07 14:56:49

标签: android bitmap

从资源加载了位图图像而没有缩放,我试图使用绘制位图方法和合适的缩放矩阵将其直接绘制到画布上。不幸的是,位图在绘制时似乎没有表现出正确的尺寸 - 由(0.5,0.5)后缩放的单位矩阵不会渲染一半位图尺寸的图像。我有什么东西在这里俯瞰吗?

这是我的代码:

import android.content.Context;
import android.view.View;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Color;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory.Options;
import android.graphics.RectF;
import android.graphics.Matrix;

public class LogoView extends View
{
 private final Matrix mf_logoMatrix;
 private final Paint mf_paint;
 private final Bitmap mf_logoBitmap;


 public LogoView(final Context p_context)
 { 
  super(p_context);
  mf_logoMatrix = new Matrix();
  mf_paint = new Paint();
  BitmapFactory.Options options = new BitmapFactory.Options();
  options.inScaled = false;
  mf_logoBitmap = BitmapFactory.decodeResource(p_context.getResources(),
                                               R.drawable.logo_1500,
                                               options);
 }


 @Override public void onDraw(Canvas p_canvas)
 {
  mf_paint.setColor(Color.BLACK);
  p_canvas.drawPaint(mf_paint);
  mf_logoMatrix.reset();
  mf_logoMatrix.preScale(0.5f, 0.5f);
  p_canvas.setMatrix(mf_logoMatrix);
  p_canvas.drawBitmap(mf_logoBitmap, mf_logoMatrix, null);
 }


};

1 个答案:

答案 0 :(得分:0)

好的,再次查看我的代码之后,我刚刚注意到我正在寻找的小学生错误...我已经将矩阵应用到画布并通过绘制位图方法......我猜一次就足以完成工作了:)我非常喜欢矩阵,我觉得需要两次使用它。感谢大家的时间;我是用湿腌鱼鞭打自己的。