【问题标题】:Android - Convert Canvas to BitmapAndroid - 将画布转换为位图
【发布时间】:2014-12-09 16:23:26
【问题描述】:

是否可以在绘制之前将 Canvas 转换为 Bitmap?我已经覆盖了自定义视图的 onMeasure 以实现滚动。画布已正确显示,我想将其转换为位图以提高滚动速度,但使用这些语句

Bitmap bitmap = Bitmap.createBitmap(this.getMeasuredWidth(),this.getMeasuredHeight(),bitmap.Config.ARGB_8888); 
Canvas canvas = new Canvas(bitmap);

原木猫说

09-15 21:54:36.926: E/AndroidRuntime(28919): FATAL EXCEPTION: main
09-15 21:54:36.926: E/AndroidRuntime(28919): java.lang.RuntimeException: Unable to start activity     ComponentInfo{zardoni.matteo.timeline/zardoni.matteo.AppAndroid.Activities.TimelineActivity}: java.lang.IllegalArgumentException: width and height must be > 0

有没有办法在不知道宽度/高度的情况下通过 createBitmap() 将 Canvas 转换为位图?我只有在画布上完成绘图后才知道这个值。

谢谢

【问题讨论】:

  • 为什么不只重绘可见的部分,跳过不可见的部分?
  • 我该怎么做?我怎么知道哪个部分是可见的?调用“bitmap = getDrawingCache()”位图只显示绘图直到显示的大小,在它上面屏幕是灰色的

标签: android canvas bitmap height width


【解决方案1】:

要从画布转换为位图,只需创建一个位图并将其添加到您的画布上,然后在画布上绘制,所有内容都会出现在您的位图上

在您的情况下,日志猫清楚地说:您的函数:getMeasuredWidth 和 getMeasuredHeight 返回的值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-30
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    • 2019-01-15
    相关资源
    最近更新 更多