80,351
社区成员
发帖
与我相关
我的任务
分享
public class HomeHotActivity extends Activity{
private ListView mListView;
private List<VideoInfo> videoList=new ArrayList<VideoInfo>();
private VideoInfo video;
private myAdapter adapter;
private int currentIndex=-1;
private String url1="http://ht-mobile.cdn.turner.com/nba/big/teams/kings/2014/12/12/HollinsGlassmov-3462827_8382664.mp4";
private String url2="http://ht-mobile.cdn.turner.com/nba/big/teams/kings/2014/12/12/VivekSilverIndiamov-3462702_8380205.mp4";
private VideoView mVideoView;
MediaController mMediaCtrl;
private int playPosition=-1;
private boolean isPaused=false;
private boolean isPlaying=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home_hot);
initListView();
}
private void initListView() {
for(int i=0;i<50;i++){
if(i%2==0){
video=new VideoInfo(url1,"猛龙过江"+i,R.drawable.c);
}else{
video=new VideoInfo(url2,"猛龙过江"+i,R.drawable.b);
}
videoList.add(video);
}
mListView=(ListView) findViewById(R.id.lv_hot);
adapter = new myAdapter();
mListView.setAdapter(adapter);
mListView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if((currentIndex<firstVisibleItem || currentIndex>mListView.getLastVisiblePosition())&&isPlaying){
System.out.println("滑动的:"+mVideoView.toString());
playPosition=mVideoView.getCurrentPosition();
mVideoView.pause();
mVideoView.setMediaController(null);
isPaused=true;
isPlaying=false;
System.out.println("视频已经暂停:"+playPosition);
}
}
});
}
class myAdapter extends BaseAdapter{
@Override
public int getCount() {
return videoList.size();
}
@Override
public Object getItem(int position) {
return videoList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
class ViewHolder{
ImageView videoImage;
TextView videoNameText;
ImageButton videoPlayBtn;
ProgressBar mProgressBar;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
final int mPosition=position;
if(convertView==null){
convertView=LayoutInflater.from(HomeHotActivity.this).inflate(R.layout.hot_lisview_item, null);
holder=new ViewHolder();
holder.videoImage=(ImageView) convertView.findViewById(R.id.video_image);
holder.videoNameText=(TextView)convertView.findViewById(R.id.video_name_text);
holder.videoPlayBtn=(ImageButton)convertView.findViewById(R.id.video_play_btn);
holder.mProgressBar=(ProgressBar) convertView.findViewById(R.id.progressbar);
convertView.setTag(holder);
}else{
holder=(ViewHolder) convertView.getTag();
}
holder.videoImage.setImageDrawable(getResources().getDrawable(videoList.get(position).getVideoImage()));
holder.videoNameText.setText(videoList.get(position).getVideoName());
holder.videoPlayBtn.setVisibility(View.VISIBLE);
holder.videoImage.setVisibility(View.VISIBLE);
holder.videoNameText.setVisibility(View.VISIBLE);
mMediaCtrl = new MediaController(HomeHotActivity.this,false);
if(currentIndex == position){
holder.videoPlayBtn.setVisibility(View.INVISIBLE);
holder.videoImage.setVisibility(View.INVISIBLE);
holder.videoNameText.setVisibility(View.INVISIBLE);
if(isPlaying || playPosition==-1){
if(mVideoView!=null){
mVideoView.setVisibility(View.GONE);
mVideoView.stopPlayback();
holder.mProgressBar.setVisibility(View.GONE);
}
}
mVideoView=(VideoView) convertView.findViewById(R.id.videoview);
mVideoView.setVisibility(View.VISIBLE);
mMediaCtrl.setAnchorView(mVideoView);
mMediaCtrl.setMediaPlayer(mVideoView);
mVideoView.setMediaController(mMediaCtrl);
mVideoView.requestFocus();
holder.mProgressBar.setVisibility(View.VISIBLE);
if(playPosition>0 && isPaused){
mVideoView.start();
isPaused=false;
isPlaying=true;
holder.mProgressBar.setVisibility(View.GONE);
}else{
mVideoView.setVideoPath(videoList.get(mPosition).getUrl());
isPaused=false;
isPlaying=true;
System.out.println("播放新的视频");
}
mVideoView.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
if(mVideoView!=null){
mVideoView.seekTo(0);
mVideoView.stopPlayback();
currentIndex=-1;
isPaused=false;
isPlaying=false;
holder.mProgressBar.setVisibility(View.GONE);
adapter.notifyDataSetChanged();
}
}
});
mVideoView.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
holder.mProgressBar.setVisibility(View.GONE);
mVideoView.start();
}
});
}else{
holder.videoPlayBtn.setVisibility(View.VISIBLE);
holder.videoImage.setVisibility(View.VISIBLE);
holder.videoNameText.setVisibility(View.VISIBLE);
holder.mProgressBar.setVisibility(View.GONE);
}
holder.videoPlayBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
currentIndex=mPosition;
playPosition=-1;
adapter.notifyDataSetChanged();
}
});
return convertView;
};
}
static class VideoInfo {
private String url;
private String videoName;
private int videoImage;
public VideoInfo(String url,String name,int path) {
this.videoName=name;
this.videoImage=path;
this.url=url;
}
public String getVideoName() {
return videoName;
}
public void setVideoName(String videoName) {
this.videoName = videoName;
}
public int getVideoImage() {
return videoImage;
}
public void setVideoImage(int videoImage) {
this.videoImage = videoImage;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:descendantFocusability="blocksDescendants"
android:background="@color/black" >
<VideoView
android:id="@+id/videoview"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_centerInParent="true" />
<ProgressBar
android:id="@+id/progressbar"
android:visibility="gone"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_centerInParent="true" />
<ImageView
android:id="@+id/video_image"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="@drawable/b"
android:scaleType="centerCrop" />
<ImageButton
android:id="@+id/video_play_btn"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="@drawable/play_btn" />
<TextView
android:id="@+id/video_name_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/video_image"
android:textSize="10sp"
android:textColor="@color/white"
android:background="#99454545"
android:text=" 杜斯卡" />
</RelativeLayout>