【发布时间】: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