u011732740
SaluteWarmTinct
采纳率86%
2016-08-18 04:09 阅读 2.5k
已采纳

Android录制视频时切换横屏后为什么还是竖屏效果?

上图:
这是竖屏效果:
图片说明
这是横屏效果:
图片说明
为什么没有切换过来呢?代码如下:
这是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"/>
问题出在哪呢?是需要设置什么属性吗?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • 已采纳
    u011732740 SaluteWarmTinct 2016-08-18 08:55

    已自解,录制时Carmer默认横屏录制,代码中有setDisplayOrientation去调整角度,切换横屏后setDisplayOrientation又重新走了一遍就从横屏变竖屏了。
    判断当前横竖屏状态,横屏时setDisplayOrientation不要走就好。

    点赞 评论 复制链接分享

相关推荐