嘿,伙计们,当我旋转手机时,我的活动重新启动。我有视频播放视频,我旋转,视频重新启动。现在我发现将此添加到我在清单中的活动中修复它
<activity android:name="Vforum" android:configChanges="orientation"></activity>
现在的问题是视频控件在重新绘制之前不会重新绘制,直到它们消失并返回,从而使得从横向模式到纵向模式的真正长控制或者从纵向到横向的真正短控制。一旦它们消失然后我点击使它们回来,然后它们的尺寸正确。有没有更好的方法呢?
答案 0 :(得分:23)
添加
android:configChanges="orientation"
到AndroidManifest.xml中的Activity。
如果您的目标API级别为13或更高级别,则除了screenSize
所述orientation
值之外,您还必须包含android:configChanges="orientation|screenSize"
值。here。所以你的标签可能看起来像
{{1}}
答案 1 :(得分:3)
考虑记住Activity生命周期事件中的视频文件位置。创建活动后,您可以获得视频位置并从重新启动时开始播放。
在您的Activity类中:
@Override
protected void onCreate(Bundle bundle){
super.onCreate(bundle);
int mPos=bundle.getInt("pos"); // get position, also check if value exists, refer to documentation for more info
}
@Override
protected void onSaveInstanceState (Bundle outState){
outState.putInt("pos", myVideoView.getCurrentPosition()); // save it here
}
答案 2 :(得分:1)
将configChanges
属性添加到您的清单意味着您将handle config changes yourself。覆盖活动中的onConfigurationChanged()
方法:
int lastOrientation = 0;
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks if orientation changed
if (lastOrientation != newConfig.orientation) {
lastOrientation = newConfig.orientation;
// redraw your controls here
}
}
答案 3 :(得分:0)
ConfigChanges是对的,但它确实像这样工作;
<activity
android:configChanges="orientation|screenSize" ... >
以及活动类
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (lastOrientation != newConfig.orientation) {
lastOrientation = newConfig.orientation;
// redraw your controls here
}
}
答案 4 :(得分:0)
您应该尝试一下。转到您的AndroidManifest.xml文件,然后粘贴该标签。
<activity android:name=".activity_name"
android:configChanges="keyboardHidden|orientation|screenSize">
</activity>