启用滚动时调用 `getDrawingCache` 返回 null
Posted
技术标签:
【中文标题】启用滚动时调用 `getDrawingCache` 返回 null【英文标题】:Call to `getDrawingCache` returns null when scroll is enabled 【发布时间】:2012-07-19 12:26:34 【问题描述】:此代码中缺少什么?相同的代码适用于 ICS。在 API 8 上会出现滚动,并且某些内容会超出屏幕。这种情况下如何获取绘图缓存?
代码:
TableLayout page = (TableLayout) findViewById(R.id.page);
page.setDrawingCacheEnabled(true);
page.buildDrawingCache();
// getDrawingCache returns null...
Bitmap pageBmp = Bitmap.createBitmap(page.getDrawingCache(true));
page.destroyDrawingCache();
page.setDrawingCacheEnabled(false);
【问题讨论】:
android View.getDrawingCache returns null, only null的可能重复 类似***.com/questions/2339429/… 【参考方案1】:我解决了。创建了一个视图大小的位图并将视图绘制到其中。
TableLayout page = (TableLayout) findViewById(R.id.page);
Bitmap pageBmp = Bitmap.createBitmap(page.getWidth(), page.getHeight(),
Config.ARGB_8888);
Canvas canvas = new Canvas(pageBmp);
page.draw(canvas);
使用了pageBmp
位图..
【讨论】:
10x 很多人,我的位图有一些问题,它总是为空,与您第一次尝试的方式类似,但这段代码只是保存了我的项目:D 它完美无缺 Awesome hack dude.... 解决了我的问题。这将真正帮助那些使用滚动视图作为父级的人,因为如果存在滚动视图,getDrawingCache() 将不起作用。以上是关于启用滚动时调用 `getDrawingCache` 返回 null的主要内容,如果未能解决你的问题,请参考以下文章
在滚动之前启动时调用 scrollViewDidScroll
仅在用户滚动时调用 Scroll,而不是在 animate()
UITableViewCell cellForRowAtIndexPath 首次滚动时调用大量行
如何在 recyclerview 滚动时调用 api? [复制]
是否有 RecyclerView 的 OnScrollListener 在滚动时连续调用,而不仅仅是在状态更改或滚动开始时调用?