2016-11-21 62 views
-1

我試圖僅在視頻播放時才顯示視頻視圖。 當我點擊一個gridview項時,視頻開始播放,而videoview可見,但當視頻停止時,它不會消失。下面的代碼: 主要活動:僅當播放視頻時才使視頻視圖可見

public class MainActivity extends AppCompatActivity { 
public Integer[] mVideo = { 
     R.raw.clesella, R.raw.simonino 
}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    GridView gridview = (GridView) findViewById(R.id.gridview); 
    gridview.setAdapter(new VideoAdapter(this)); 

    gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      final VideoView mVideoView2 = (VideoView) findViewById(R.id.video); 
      // VideoView mVideoView = new VideoView(this); 
      String uriPath = "android.resource://"+ getPackageName()+"/"+mVideo[position]; 
      Uri uri2 = Uri.parse(uriPath); 
      mVideoView2.setVideoURI(uri2); 
      mVideoView2.requestFocus(); 
      mVideoView2.start(); 
      mVideoView2.postDelayed(new Runnable() { 
       public void run() { 

        mVideoView2.setVisibility(View.VISIBLE); 

       } 
      }, mVideoView2.getDuration()); 


     } 

這裏的佈局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.graduation.nakama.harrygraduation.MainActivity"> 


<VideoView 
    android:id="@+id/video" 
    android:layout_width="wrap_content" 
    android:layout_height="250dp" 
    android:visibility="invisible" 
    android:layout_alignParentStart="true" 
    android:layout_marginTop="100dp" /> 

<GridView 
    android:id="@+id/gridview" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:columnWidth="90dp" 
    android:numColumns="auto_fit" 

    android:verticalSpacing="10dp" 
    android:horizontalSpacing="10dp" 
    android:stretchMode="columnWidth" 
    android:gravity="center" 
    android:layout_centerHorizontal="true" /> 

+0

,我可以從你還沒有設置mVideoView2.setVisibility代碼中看到(View.GONE) ; –

+0

好的,謝謝,但究竟在哪裏以及如何設置它?因爲如果我把它放在mVideoView2.postDelayed後,videoview將立即關閉。謝謝您的幫助 –

回答

0
mVideoView2.setOnCompletionListener(new OnCompletionListener() { 

    @Override 
    public void onCompletion(MediaPlayer mp) { 
     // TODO Auto-generated method stub 

     //write your code after complete video play 
     mVideoView2.setVisibility(View.GONE); 
    } 
});