2014-02-19 2 views
0

저는 파편에 매우 익숙하며 비디오 뷰를 조각에로드하려고 시도하고 있습니다. 레이아웃 파일을 올바르게 배치 했으므로 (이미지간에 잘 스 와이프 할 수 있음), 비디오 뷰를 조각으로로드하는 방법을 잘 모르겠습니다. 다음과 같이 내 활동에 대한 내 코드는 다음과 같습니다조각 내에서 비디오 뷰를 재생하려면 어떻게해야합니까?

package com.example.PLS; 

import android.content.Context; 
import android.net.Uri; 
import android.os.Bundle; 
import android.os.Parcelable; 
import android.support.v4.view.PagerAdapter; 
import android.support.v4.view.ViewPager; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.VideoView; 

public class CustomPagerAdapter extends PagerAdapter 
{ 
public Object instantiateItem(View collection, int position) { 
    LayoutInflater inflater = (LayoutInflater) collection.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    int resId = 0; 
    switch (position) { 
     case 0: { 
      resId = R.layout.page1; 
      break; 
     } 
     case 1: { 
      resId = R.layout.page2; 
      break; 
     } 
     case 2: { 
      resId = R.layout.page3; 
      break; 
     } 
    } 
    View view = inflater.inflate(resId, null); 
    ((ViewPager) collection).addView(view, 0); 
    return view; 
} 
@Override 
public void destroyItem(View arg0, int arg1, Object arg2) { 
    ((ViewPager) arg0).removeView((View) arg2); 
} 
@Override 
public boolean isViewFromObject(View arg0, Object arg1) { 
    return arg0 == ((View) arg1); 
} 
@Override 
public Parcelable saveState() { 
    return null; 
} 
@Override 
public int getCount() { 
    return 3; 
} 
} 

package com.example.PLS; 

import android.app.Fragment; 
import android.net.Uri; 
import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.view.ViewPager; 
import android.view.Menu; 
import android.widget.VideoView; 

public class MyActivity extends FragmentActivity { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    // Create and set adapter 
    CustomPagerAdapter adapter = new CustomPagerAdapter(); 
    ViewPager myPager = (ViewPager) findViewById(R.id.customviewpager); 
    myPager.setAdapter(adapter); 
    myPager.setCurrentItem(0); 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 
} 

는 잘 모르겠어요 경우 또는 대한 PAGE1에서 비디오를 재생하려면 VideoView를 지켜 보면서 알려주는 코드를 삽입하는 방법 예. 어디서 그걸 놓을 것이고 어떻게 보일까요?

답변

1

비트 수 : 보기뿐 아니라 단편을 사용하고 있습니까? 내가 볼 수있는 한 뷰를 추가하고 제거합니다.

또는 레이아웃 파일에서 어떤 작업을 수행합니까? 그렇다면 xml 레이아웃 리소스를 제공 할 수 있습니까?

는 질문에 대해 can i use view pager with views (not with fragments)

를 참조하십시오 : 당신이 addView를 호출 한 후이 , 당신은 다음과 같은 것을 할 (또는 버튼 리스너에 그 추가) 수 :

String videoUri = getVideoUriForPosition(position); 
    // TODO check if videoUri is not null or something 

    mPlayerView = (VideoView) mView.findViewById(R.id.video_player); 
       mPlayerView.requestFocus(); 
    if(mPlayerView == null) { 
     Log.e(TAG, "Video view null"); 
    } else { 
     mPlayerView.setVideoURI(Uri.parse(videoUri)); 
     mPlayerView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 

      public void onPrepared(MediaPlayer mp) { 
        mPlayerView.start();     
     }); 
    } 
관련 문제