2016-11-21 2 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를 설정 havent 한 코드에서 (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); 
    } 
});