2017年5月7日星期日

videoview in list

package com.berlin.livedemo;

import android.content.Context;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.os.Handler;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.ImageView;

import io.vov.vitamio.widget.VideoView;

/** * Created by AnHuiNews on 2017/5/8. */
public class ListVideoAdapter extends RecyclerView.Adapter<ListVideoAdapter.MyHolder>{

    private Context context;
    private String url = "http://v.cctv.com/flash/mp4video6/TMS/2011/01/05/cf752b1c12ce452b3040cab2f90bc265_h264818000nero_aac32-1.mp4";

    public ListVideoAdapter(Context context) {
        this.context = context;
    }

    @Override    public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        return new MyHolder(LayoutInflater.from(context).inflate(R.layout.item_listvideo_layout,parent,false));
    }

    @Override    public void onBindViewHolder(final MyHolder holder, int position) {
        holder.videoView.setVideoPath(url);
        holder.play_img.setOnClickListener(new View.OnClickListener() {
            @Override            public void onClick(View v) {
                holder.videoView.start();
                holder.back_img.setVisibility(View.GONE);
            }
        });
        holder.switch_img.setOnClickListener(new View.OnClickListener() {
            @Override            public void onClick(View v) {
                if (context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
                    holder.fullScreen();

                    ((ListVideoActivity)context).setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
                } else {
                    holder.normalScreen();
                    ((ListVideoActivity)context).setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
                }
            }
        });
    }

    @Override    public int getItemCount() {
        return 20;
    }

    public class MyHolder extends RecyclerView.ViewHolder{

        VideoView videoView;
        ImageView back_img;
        ImageView play_img;
        FrameLayout frameLayout;
        ImageView switch_img;

        public MyHolder(View itemView) {
            super(itemView);
            videoView = (VideoView) itemView.findViewById(R.id.item_videolist_videoview);
            back_img = (ImageView) itemView.findViewById(R.id.item_listvideo_img);
            play_img = (ImageView) itemView.findViewById(R.id.item_listvideo_play);
            frameLayout = (FrameLayout) itemView.findViewById(R.id.item_listvideo_framelayout);
            switch_img = (ImageView) itemView.findViewById(R.id.item_listvideo_switch);
            normalScreen();
        }

        public void fullScreen(){
            WindowManager.LayoutParams lp = ((ListVideoActivity)context).getWindow().getAttributes();
            lp.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
            ((ListVideoActivity)context).getWindow().setAttributes(lp);
            ((ListVideoActivity)context).getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
            videoView.setVideoLayout(VideoView.VIDEO_LAYOUT_FIT_PARENT, 0);
            ViewGroup.LayoutParams params = frameLayout.getLayoutParams();
            params.height = ((ListVideoActivity) context).getWindowManager().getDefaultDisplay().getWidth();
            params.width = ((ListVideoActivity) context).getWindowManager().getDefaultDisplay().getHeight();
            frameLayout.setLayoutParams(params);
        }

        public void normalScreen() {
            WindowManager.LayoutParams attr = ((ListVideoActivity)context).getWindow().getAttributes();
            attr.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
            ((ListVideoActivity)context).getWindow().setAttributes(attr);
            ((ListVideoActivity)context).getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
            videoView.setVideoLayout(VideoView.VIDEO_LAYOUT_FIT_PARENT, 0);
            ViewGroup.LayoutParams params = frameLayout.getLayoutParams();

            params.width = ((ListVideoActivity) context).getWindowManager().getDefaultDisplay().getWidth();
            params.height = params.width/4*3;
            frameLayout.setLayoutParams(params);

        }
    }
}

没有评论:

发表评论