Create VideoView

Description

The following code shows how to use VideoView to play a m4v media file.

Example

Layout file


<?xml version="1.0" encoding="utf-8"?>
<!--/*  w ww . j a  va  2 s .  co  m*/
  Copyright (c) 2012 Manning
  See the file license.txt for copying permission.
-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:id="@+id/main_portrait_content"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="0.25"
            android:orientation="horizontal" >

            <ScrollView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1" >

                <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:text="test" />
            </ScrollView>

            <View
                android:id="@+id/main_portrait_position"
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_margin="2dp"
                android:layout_weight="1"
                android:background="#ffffff" />
        </LinearLayout>

        <View
            android:layout_width="fill_parent"
            android:layout_height="2dp"
            android:layout_marginBottom="5dp"
            android:layout_marginTop="5dp"
            android:background="#ffffff" />

        <ScrollView
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_marginTop="2dp"
            android:layout_weight="0.75" >

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text="text" />
        </ScrollView>
    </LinearLayout>

    <VideoView
        android:id="@+id/main_videoview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:visibility="gone" />

</RelativeLayout>

Java code


/*******************************************************************************
 * Copyright (c) 2012 Manning/*from   w  ww  .  java  2  s  .  c  o  m*/
 * See the file license.txt for copying permission.
 ******************************************************************************/
package com.manning.androidhacks.hack014;

import android.app.Activity;
import android.content.res.Configuration;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.MediaController;
import android.widget.RelativeLayout;
import android.widget.VideoView;

public class MainActivity extends Activity {

  private VideoView mVideoView;
  private View mPortraitPosition;
  private View mPortraitContent;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mPortraitPosition = findViewById(R.id.main_portrait_position);
    mPortraitContent = findViewById(R.id.main_portrait_content);
    mVideoView = (VideoView) findViewById(R.id.main_videoview);

    // We use a post to call initVideoView because
    // we need the width and height of mPortraitPosition
    mVideoView.post(new Runnable() {
      @Override
      public void run() {
        initVideoView();
      }
    });
  }

  private void initVideoView() {
    mVideoView.setMediaController(new MediaController(this));
    Uri uri = Uri.parse("android.resource://" + getPackageName() + "/"
        + R.raw.bigbuck);
    mVideoView.setVideoURI(uri);

    setVideoViewPosition();
    mVideoView.start();
  }

  private void setVideoViewPosition() {
    switch (getResources().getConfiguration().orientation) {
    case Configuration.ORIENTATION_LANDSCAPE: {
      mPortraitContent.setVisibility(View.GONE);

      RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
          LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);

      params.addRule(RelativeLayout.CENTER_IN_PARENT);
      mVideoView.setLayoutParams(params);
      break;
    }

    case Configuration.ORIENTATION_SQUARE:
    case Configuration.ORIENTATION_UNDEFINED:
    case Configuration.ORIENTATION_PORTRAIT:
    default: {

      mPortraitContent.setVisibility(View.VISIBLE);

      int[] locationArray = new int[2];
      mPortraitPosition.getLocationOnScreen(locationArray);

      RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
          mPortraitPosition.getWidth(), mPortraitPosition.getHeight());

      params.leftMargin = locationArray[0];
      params.topMargin = locationArray[1];

      mVideoView.setLayoutParams(params);

      break;
    }
    }
  }

  @Override
  public void onConfigurationChanged(Configuration newConfig) {
    setVideoViewPosition();
    super.onConfigurationChanged(newConfig);
  }
}

Download

hack14.zip




















Home »
  Android »
    Android UI »




UI Basics
Action Bar
Animation
Button
Canvas
CheckBox
Clock Date Picker
Dialog
EditText
Event
Fragment
Gesture
GridView
ImageView
Layout
ListView
Map
Menu
Model
OpenGL
ProgressBar
RadioButton
Spinner
Tab
TextView
Thread
Toast
Video
View
WebView