上图:
这是竖屏效果:
这是横屏效果:
为什么没有切换过来呢?代码如下:
这是XML文件路径横屏效果和竖屏效果的:
代码中在onConfigurationChanged里进行了切换:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
setContentView(R.layout.activity_transcribe_video); //布局
initView();
}
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){
setContentView(R.layout.activity_transcribe_video); //布局
initView();
}
}
这是布局文件的代码:
<?xml version="1.0" encoding="utf-8"?>
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#fff">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/ll_video_view"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<VideoView
android:id="@+id/mVideoView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"/>
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_alignParentTop="true"
android:background="#99000000">
<ImageView
android:id="@+id/iv_video_back"
android:layout_width="50dp"
android:layout_height="50dp"
android:padding="13dp"
android:src="@mipmap/img_video_up_back"
android:layout_marginLeft="20dp"/>
<RelativeLayout
android:id="@+id/rl_video_top_menu"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center_vertical">
<ImageView
android:id="@+id/switch_btn"
android:layout_width="25dp"
android:layout_height="25dp"
android:src="@mipmap/img_video_up_switch"
android:layout_marginLeft="30dp"/>
<ImageView
android:id="@+id/iv_video_shanguang"
android:layout_width="25dp"
android:layout_height="25dp"
android:src="@mipmap/img_video_up_sg"
android:layout_toRightOf="@+id/switch_btn"
android:layout_marginLeft="30dp"/>
<ImageView
android:id="@+id/iv_video_time_start"
android:layout_width="25dp"
android:layout_height="25dp"
android:src="@mipmap/img_video_up_time"
android:layout_toRightOf="@+id/iv_video_shanguang"
android:layout_marginLeft="30dp"/>
</RelativeLayout>
<TextView
android:id="@+id/tv_time_start"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="00:00"
android:gravity="center"
android:textSize="30sp"
android:textColor="#ffffff"
android:visibility="gone"/>
</LinearLayout>
<ProgressBar
android:id="@+id/pb_video_up"
android:layout_width="match_parent"
android:layout_height="3dp"
android:layout_above="@+id/rl_video_below_menu"
style="?android:attr/progressBarStyleHorizontal"
android:progressDrawable="@drawable/video_up_pro_shape"/>
<RelativeLayout
android:id="@+id/rl_video_below_menu"
android:layout_width="match_parent"
android:layout_height="150dp"
android:background="#99000000"
android:gravity="center"
android:layout_alignParentBottom="true">
<ImageView
android:id="@+id/recorder_again"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/img_video_up_retake"
android:layout_marginTop="12dp"
android:visibility="invisible"/>
<RelativeLayout
android:id="@+id/rl_l"
android:layout_width="86dp"
android:layout_marginLeft="100dp"
android:background="@mipmap/video_yuan"
android:layout_height="86dp">
<ImageView
android:id="@+id/recorder_start"
android:layout_width="73dp"
android:layout_height="73dp"
android:src="@mipmap/video_red_circle"
android:layout_centerInParent="true"
android:visibility="visible"/>
<ImageView
android:id="@+id/recorder_stop"
android:layout_width="45dp"
android:layout_centerInParent="true"
android:layout_height="45dp"
android:src="@mipmap/video_red_rect"
android:visibility="invisible"/>
</RelativeLayout>
<ImageView
android:id="@+id/btn_loaction_vedio"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/img_video_up_location"
android:layout_toRightOf="@+id/rl_l"
android:layout_marginLeft="50dp"
android:layout_marginTop="12dp"/>
<ImageView
android:id="@+id/recorder_next"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/img_video_up_next"
android:layout_toRightOf="@+id/rl_l"
android:layout_marginLeft="50dp"
android:layout_marginTop="12dp"
android:visibility="invisible"/>
</RelativeLayout>
</RelativeLayout>
<ImageView
android:id="@+id/iv_video_time_start_img"
android:layout_width="115dp"
android:layout_height="115dp"
android:layout_gravity="center"
android:scaleType="fitXY"
android:visibility="gone"
android:src="@mipmap/img_video_time_03"
android:layout_marginBottom="67dp"/>
这是清单文件的:
android:name="com.xxxxxx.xxxxx.TranscribeVideoActivity"
android:configChanges="orientation|keyboardHidden"
android:exported="true"/>
问题出在哪呢?是需要设置什么属性吗?
已自解,录制时Carmer默认横屏录制,代码中有setDisplayOrientation去调整角度,切换横屏后setDisplayOrientation又重新走了一遍就从横屏变竖屏了。
判断当前横竖屏状态,横屏时setDisplayOrientation不要走就好。