Как создать макет наложения в android ?
В моем проекте есть одна кнопка-- & gt; on click Go to second Activity and Stream a Video, т. е. я тоже использую 2 xml-файла, я хочу воспроизвести видео на той же странице, где находится кнопка, видео должно быть в наложении,
Это мое MainActivity.java
package com.example.admin.videoviewdemonuts; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.app.Activity; import android.content.Intent; public class MainActivity extends Activity { Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Get the layout from video_main.xml setContentView(R.layout.activity_main); // Locate the button in activity_main.xml button = (Button) findViewById(R.id.MyButton); // Capture button clicks button.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { // Start NewActivity.class Intent myIntent = new Intent(MainActivity.this, VideoViewActivity.class); startActivity(myIntent); } }); } }
Это VideoViewActivity.java
package com.example.admin.videoviewdemonuts; import android.media.MediaPlayer; import android.media.MediaPlayer.OnPreparedListener; import android.net.Uri; import android.os.Bundle; import android.app.Activity; import android.app.ProgressDialog; import android.util.Log; import android.widget.MediaController; import android.widget.VideoView; public class VideoViewActivity extends Activity { // Declare variables ProgressDialog pDialog; VideoView videoview; // Insert your Video URL String VideoURL = "http://www.androidbegin.com/tutorial/AndroidCommercial.3gp"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Get the layout from video_main.xml setContentView(R.layout.videoview_main); // Find your VideoView in your video_main.xml layout videoview = (VideoView) findViewById(R.id.VideoView); // Execute StreamVideo AsyncTask // Create a progressbar pDialog = new ProgressDialog(VideoViewActivity.this); // Set progressbar title pDialog.setTitle("Android Video Streaming Tutorial"); // Set progressbar message pDialog.setMessage("Buffering..."); pDialog.setIndeterminate(false); pDialog.setCancelable(false); // Show progressbar pDialog.show(); try { // Start the MediaController MediaController mediacontroller = new MediaController( VideoViewActivity.this); mediacontroller.setAnchorView(videoview); // Get the URL from String VideoURL Uri video = Uri.parse(VideoURL); videoview.setMediaController(mediacontroller); videoview.setVideoURI(video); } catch (Exception e) { Log.e("Error", e.getMessage()); e.printStackTrace(); } videoview.requestFocus(); videoview.setOnPreparedListener(new OnPreparedListener() { // Close the progress bar and play the video public void onPrepared(MediaPlayer mp) { pDialog.dismiss(); videoview.start(); } }); } }
xml для MainActivity
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:id="@+id/MyButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="button" /> </RelativeLayout>
xml для VideoViewActivity
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" > <VideoView android:id="@+id/VideoView" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerHorizontal="true" android:layout_centerVertical="true" /> </FrameLayout>
Что я уже пробовал:
Пожалуйста, предложите мне несколько советов и несколько образцов тоже,
David Crow
Так почему бы не поставить VideoView
виджет в том же файле макета, что и кнопка?