首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TextureView getBitmap java.lang.IllegalStateException

TextureView getBitmap java.lang.IllegalStateException
EN

Stack Overflow用户
提问于 2017-07-05 10:25:55
回答 1查看 308关注 0票数 1

我通过TextureView启动了一个线程到getBitmap,但是,我得到了一个异常:

代码语言:javascript
运行
复制
E/AndroidRuntime: FATAL EXCEPTION: Thread-814
java.lang.IllegalStateException: Hardware acceleration can only be used with a single UI thread.
Original thread: Thread[main,5,main]
Current thread: Thread[Thread-814,5,main]
    at android.view.HardwareRenderer$GlRenderer.checkCurrent(HardwareRenderer.java:1343)
    at android.view.HardwareRenderer$GlRenderer.validate(HardwareRenderer.java:1080)
    at android.view.TextureView.getBitmap(TextureView.java:587)
    at com.example.zmc.colorfultextproject.demo2.SecondActivity.getFrame(SecondActivity.java:153)
    at com.meitu.colorfultext.ColorfulTextView$1.run(ColorfulTextView.java:131)
    at java.lang.Thread.run(Thread.java:856)

在我的代码中

代码语言:javascript
运行
复制
private TextureView demo2VideoTtv;

public Bitmap getFrame() {
    //这里会造成抖动
    long start = System.currentTimeMillis();
    demo2VideoTtv.getBitmap(mFrame); // here throw exception
    Log.d("SecondActivity", "getFrame time" + (System.currentTimeMillis() - start));
    //裁剪图片
    mFrame_part = Bitmap.createBitmap(mFrame, demo2ColorfulText.getLeft(), demo2ColorfulText.getTop(), demo2ColorfulText.getWidth(), demo2ColorfulText.getHeight());
    return mFrame_part;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-09 08:07:32

我不确定确切的api阈值,但在较旧的设备上,必须在UI线程上请求TextureView.getBitmap()。

这在21+上似乎不是问题。最后我看到它在API19上是可重现的。

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

https://stackoverflow.com/questions/44916161

复制
相关文章

相似问题

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