首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android2.3.6上的SurfaceView没有呈现完整的区域

Android2.3.6上的SurfaceView没有呈现完整的区域
EN

Stack Overflow用户
提问于 2015-05-10 22:31:31
回答 1查看 239关注 0票数 0

在我的应用程序中,我创建了SurfaceView,并使用ANativeWindow API:ANativeWindow_lockANativeWindow_unlockAndPost从NDK中使用它。

表面尺寸由ANativeWindow_setBuffersGeometry设置为320x480。屏幕尺寸更大- 480x800。

SurfaceView正在使用LayoutParams扩展到几乎全屏幕。

我看到的问题是,我的帧只能在320x480的范围内刷新。

只有在顶部有另一个视图被动画,或者我在表面视图上显式调用postInvalidate时,曲面的另一部分才会被刷新。但是,postInvalidate可以延迟工作。

这只发生在Nexus和2.3.6与ROM从https://developers.google.com/android/nexus/images (2.3.6 (GRK39F))。与4.0.4相同的设备没有这个错误。

工作良好的三星Ace-2与2.3.6.在更高版本的android上也能很好地工作。

有人见过这样的虫子吗?很确定这是那个电话上的窃听器。有什么建议来解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-10 23:27:11

经过一些调试和SurfaceView源代码的阅读,我找到了解决方案。显然,ANativeWindow_setBuffersGeometry是不够的,大小也应该从java设置。这帮了我:

public void surfaceCreated(SurfaceHolder holder) { holder.setFixedSize(BuildConfig.VIDEO_WIDTH, BuildConfig.VIDEO_HEIGHT); }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30157321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档