当我想在Android中将CanmapDrawable绘制到Canvas时,有两种可能做同样的事情,我不知道更喜欢哪一种:
使用canvas.drawBitmap()并使用getBitmap()从drawable中提取Bitmap
使用drawable.draw(canvas),将canvas作为parameter passing给drawable。
我现在正在使用第一个选项,但它似乎完全随意,因为我看不出任何差异。
谢谢你的回答
不要像你那样做选项号1。 每次想要绘制时,不是从drawable创建位图,而是首先创建一个位图。 也就是说,如果要绘制位图,请不要创建Drawable。 像这样创建一个位图:
mBitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.myImage); mBitmap = Bitmap.createScaledBitmap(mBitmap, width, height, true);
而这只是你做过一次的事情。 之后,就像你一样绘制(canvas.drawbitmap())。
对于选项编号2,您正在正确执行。
现在,存在一些差异。 选项1绘制速度更快,通常对背景图像有益。 根据您是否绘制位图或可绘制,FPS会发生重大变化。 位图更快。
如果您需要缩放,移动和其他types的image processing,选项2是可行的方法。 没有那么快,但如果你想做上面提到的任何事情,别无选择。
希望这可以帮助!