Android視訊的全屏切換
阿新 • • 發佈:2019-01-27
安卓視訊播放的全屏播放其實很簡單,就是做橫豎兩套佈局,橫佈局只有播放器就可以了,具體做法如下:
在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>} }
大功告成,看看效果吧!