一个关于android旋转屏幕界面的方法
来源:互联网 发布:农村淘宝店在哪申请 编辑:程序博客网 时间:2024/05/22 13:34
额,先说下本文需求…
- 只能用manifests中的screenOrientation来设置屏幕方向为”landscape”
- 不能用代码setRequestedOrientation(..)来动态设置屏幕方向
- 然后根据需求来90度旋转屏幕!
那现在我就只能用 属性动画 了…大家有什么可以提出来哈
思路是旋转父布局 , 就会将里面的所有子布局也一并进行旋转并适应父布局
- 小插曲…我这子布局里有个VideoView…旋转后VideoView不能播放了,所有我用的是一个网路开源库https://github.com/sprylab/texturevideoview , 与VideoView一样的操作,就是可以旋转!
这里的思路主要就是通过属性动画,将布局中的父视图进行旋转操作!
- 1.参数 需要2个,angle (角度) 和 父布局
- 2.每次进行90 , 180 、270 、的旋转(90的倍数)
- 3.旋转后将宽高进行比例对换
public static void portrait1920_1080(int angle, View mbaseView) { AnimatorSet set = new AnimatorSet(); ObjectAnimator a1 = ObjectAnimator.ofFloat(mbaseView, "rotation", 0f, angle); ObjectAnimator a2 = null; ObjectAnimator a3 = null; if (angle == 90) { a2 = ObjectAnimator.ofFloat(mbaseView, "scaleX", 9f / 16f, 1f); a3 = ObjectAnimator.ofFloat(mbaseView, "scaleY", 16f / 9f, 1f); } if (angle == 180) { a2 = ObjectAnimator.ofFloat(mbaseView, "scaleX", 1f, 9f / 16f); a3 = ObjectAnimator.ofFloat(mbaseView, "scaleY", 1f, 16f / 9f); } if (angle == 270) { a2 = ObjectAnimator.ofFloat(mbaseView, "scaleX", 9f / 16f, 1f); a3 = ObjectAnimator.ofFloat(mbaseView, "scaleY", 16f / 9f, 1f); } if (angle == 360) { a2 = ObjectAnimator.ofFloat(mbaseView, "scaleX", 1f, 16f / 9f); a3 = ObjectAnimator.ofFloat(mbaseView, "scaleY", 1f, 9f / 16f); } if (a2 == null || a3 == null) { set.playTogether(a1); } else { set.playTogether(a1, a2, a3); } set.setDuration(300).start(); if (a2 != null && a3 != null) { a2.cancel(); a3.cancel(); } }
- 将父布局旋转后, 在将他的X轴 和 Y轴 进行比例对换….. 恩 这是自己的想法 , 如果大家有别的想法希望提出来哈 或者根据这个提出小问题,我不一定会 嘎嘎
2.恩 之前一哥们说这是博客??…我不知道博客的定义是什么…这个算是自己在项目的总结吧,虽然只是一个方法而已…总比写在笔记本上好啊 嘿嘿 (反正我是初级人员)
0 0
- 一个关于android旋转屏幕界面的方法
- 关于Android如何禁止屏幕旋转刷新界面
- Android 屏幕的旋转 onConfigurationChanged方法
- 关于android屏幕旋转问题
- android 设置屏幕界面横向的方法
- android--屏幕旋转方法总结
- Android实现屏幕旋转方法
- Android实现屏幕旋转方法
- Android实现屏幕旋转方法
- 关于屏幕旋转的问题
- 关于屏幕的旋转问题
- 关于ToolRotate——Android屏幕方向旋转的根源
- 关于ToolRotate——Android屏幕方向旋转的根源
- 关于Android旋转屏幕丢失数据的新读
- 关于Android旋转屏幕丢失数据的新读
- 制作适应屏幕旋转的QML界面
- 手动屏幕旋转的方法
- 屏幕旋转调用的方法
- Docker命令使用详解
- 【webbench】socket中close()和shutdown()区别
- 常用正则表达式
- 简单跨域请求和带预检的跨域请求
- OkHttp 基础(1)
- 一个关于android旋转屏幕界面的方法
- HTML5画布Canvas坐标轴转换、图案填充、渐变与阴影
- Activiti 自定义用户管理和组管理
- 如何使用Git和GitHub来管理自己的代码
- Bionic API中的进程交互
- perl ?
- 会引起全表扫描的十种SQL语句
- Android Volley源码 解析(一)之GET、POST请求篇
- java插件开发