gpt4 book ai didi

Android:canvas.drawBitmap 和 BitmapDrawable.draw 之间的区别?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:03:48 26 4
gpt4 key购买 nike

当我想在 Android 中将 BitmapDrawable 绘制到 Canvas 时,有两种可能性相同,但我不知道该选择哪一种:

  1. 使用 canvas.drawBitmap() 并使用 getBitmap() 从可绘制对象中提取位图

  2. 使用 drawable.draw(canvas),将 Canvas 作为参数传递给 drawable。

我现在使用的是第一个选项,但它似乎完全是随意的,因为我看不出有任何区别。

感谢您的回答

最佳答案

切勿按照您的方式执行选项 1。与其在每次绘制可绘制对象时都创建位图,不如先创建位图。也就是说,如果您要绘制位图,请不要创建 Drawable。像这样创建位图:

mBitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.myImage);
mBitmap = Bitmap.createScaledBitmap(mBitmap, width, height, true);

这是你只做一次的事情。之后,就像你一样画画(canvas.drawbitmap())。

至于选项 2,您做对了。

现在,有一些不同之处。选项 1 绘制速度更快,通常适用于背景图像。根据您绘制的是位图还是可绘制对象,FPS 会发生重大变化。位图更快。

如果您需要对图像进行缩放、移动和其他类型的操作,则可以使用选项 2。没有那么快,但如果您想执行刚才提到的任何这些事情,别无选择。

希望这对您有所帮助!

关于Android:canvas.drawBitmap 和 BitmapDrawable.draw 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6681108/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com