2010-07-26 90 views
0

可以使用画布操纵图像吗?我们如何将图像放到画布上?可以使用画布操纵图像

@Override 
protected void onDraw(Canvas canvas) { 


    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon); 
    Bitmap mBitmap = bitmap.copy(bitmap.getConfig(), true); 
    canvas = new Canvas(mBitmap); 
    Matrix matrix = new Matrix(); 

    canvas.drawBitmap(mBitmap, matrix, mPaint); 
} 

我无法在屏幕上看到图像。 canvas.drawBitmap()不应该是必须的,因为我使用构造函数并传递mBitmap。

回答

0

是的,您可以,但您不“将图像放到画布上”,Canvas只是一个用于绘制位图的界面。要做到这一点,只需创建一个Canvas并给出可变位图的引用:

Canvas c = new Canvas(myBitmap);

很容易:)

+0

谢谢。我想操纵视频。那么是否有可能将整个场景录制在您的面前,但只能将其中的一半作为预览显示给用户? – Namratha 2010-07-26 06:37:46

+0

请参阅上文。我根据你的建议继续前进,但我无法看到图像。 – Namratha 2010-07-26 09:15:04

0

你不应该在你的onDraw方法做到这一点。尝试创建一个应显示图像的ImageView,然后通过setImageBitmap(bitmap)设置位图。

一般来说,你在代码中做了一些错误的事情。

  1. 每次在屏幕上绘制图片时都会加载图片会使应用程序变慢。尝试只加载一次图像,然后编辑并将其设置为imageview。
  2. 您正在为获取的参数分配新的Canvas。但是这不会改变屏幕上的任何内容。想想看,有人把纸张放在你面前,并说:“请在论文上写下你的信息。”现在你拿起另一张白纸并在上面写下来。但另一个人只知道他的论文,并会用这篇论文来阅读你的信息。