首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安卓的TextureView setRotation问题

安卓的TextureView setRotation问题
EN

Stack Overflow用户
提问于 2014-03-18 15:39:23
回答 1查看 663关注 0票数 0

我开发了unity3d的android插件来播放视频,所以我使用TextureView来渲染视频。

一切运行良好,但当我想要设置我的TextureView对象的旋转到90,它将是不可见的,而另一个值,如30,60甚至89.92.

我不知道为什么会这样

这是我在创建TextureView对象时的代码。

代码语言:javascript
运行
复制
    Activity a = UnityPlayer.currentActivity;
    mediaPlayerContainer = new TextureView(a);
    RelativeLayout.LayoutParams l;
    l = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
    l.addRule(RelativeLayout.CENTER_IN_PARENT, -1);
    mediaPlayerContainer.setLayoutParams(l);
    mediaPlayerContainer.setRotation(89.92f);
    mediaPlayerContainer.setFocusable( true );
    mediaPlayerContainer.setFocusableInTouchMode( true );
    mediaPlayerContainer.setVisibility(View.GONE);
    mediaPlayerContainer.setSurfaceTextureListener(this);
    layout.addView(mediaPlayerContainer, new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
EN

回答 1

Stack Overflow用户

发布于 2017-05-16 16:07:52

因为轴心点不在TextureView的中心,而是在左上角。

你应该先做一点平移,做旋转,然后再平移回来。

例如:

代码语言:javascript
运行
复制
mView.translate(-mView.getWidth()/2, -mView.getHeight()/2);
mView.setRotation(90);
mView.translate(mView.getWidth()/2, mView.getHeight()/2);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22473068

复制
相关文章

相似问题

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