1. 程式人生 > >Android視訊的全屏切換

Android視訊的全屏切換

        安卓視訊播放的全屏播放其實很簡單,就是做橫豎兩套佈局,橫佈局只有播放器就可以了,具體做法如下:
        在res目錄下新建一個目錄,起名為layout-land,存放橫屏的佈局,注意橫屏佈局的存放目錄名稱必須命名成layout-land,否則程式不能自動識別到橫屏佈局。然後在layout-land目錄下建立一個和想要做橫豎屏切換的佈局相同名字的xml檔案。

        為了方便起見,這裡的例子只是放了可以區別橫豎屏的控制元件,首先看一下豎屏的佈局。

        layout/activity_main.xml

        

        程式碼如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}" >

    <ImageView
        android:id="@+id/iv"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:src="@color/black"/>
    
    <Button 
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="點我改變方向"
        android:layout_below="@id/iv"
        android:layout_alignStart="@id/iv"/>

</RelativeLayout>

        再來看一下橫屏的佈局。

        layout-land/activity_main.xml

        

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}" >

    <Button 
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="點我改變方向"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true"
        />
    
    <ImageView
        android:id="@+id/iv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_toStartOf="@id/btn"
        android:src="@color/black"/>
    
</RelativeLayout>

        注意要保證橫縱佈局的控制元件ID相同,不然你要寫兩套監聽事件了。

        接下來到了重中之重了,切換佈局的時候,只需判斷螢幕方向進行切換即可。

public class MainActivity extends Activity implements OnClickListener {
<span style="white-space:pre">	</span>
<span style="white-space:pre">	</span>private Button mBtn;


<span style="white-space:pre">	</span>@Override
<span style="white-space:pre">	</span>protected void onCreate(Bundle savedInstanceState) {
<span style="white-space:pre">		</span>super.onCreate(savedInstanceState);
<span style="white-space:pre">		</span>setContentView(R.layout.activity_main);


<span style="white-space:pre">		</span>mBtn = (Button) findViewById(R.id.btn);
<span style="white-space:pre">		</span>mBtn.setOnClickListener(this);
<span style="white-space:pre">	</span>}


<span style="white-space:pre">	</span>@Override
<span style="white-space:pre">	</span>public void onClick(View v) {


<span style="white-space:pre">		</span>// 如果螢幕方向不是橫屏的話,就讓螢幕方向變成橫屏,否則變成豎屏
<span style="white-space:pre">		</span>if (getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
<span style="white-space:pre">			</span>setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
<span style="white-space:pre">		</span>} else {
<span style="white-space:pre">			</span>setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
<span style="white-space:pre">		</span>}
<span style="white-space:pre">	</span>}
}

        大功告成,看看效果吧!