2016-05-16 2 views

ответ

2
public class MainActivity extends AppCompatActivity implements YouTubeThumbnailView.OnInitializedListener, YouTubeThumbnailLoader.OnThumbnailLoadedListener, YouTubePlayer.OnInitializedListener { 


    YouTubePlayerFragment playerFragment; 
    YouTubePlayer Player; 
    YouTubeThumbnailView thumbnailView; 
    YouTubeThumbnailLoader thumbnailLoader; 
    RecyclerView VideoList; 
    RecyclerView.Adapter adapter; 
    List<Drawable> thumbnailViews; 
    List<String> VideoId; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     thumbnailViews = new ArrayList<>(); 
     VideoList = (RecyclerView) findViewById(R.id.VideoList); 
     RecyclerView.LayoutManager layoutManager=new LinearLayoutManager(this); 
     VideoList.setLayoutManager(layoutManager); 
     adapter=new VideoListAdapter(); 
     VideoList.setAdapter(adapter); 
     VideoId = new ArrayList<>(); 
     thumbnailView = new YouTubeThumbnailView(this); 
     thumbnailView.initialize("API KEY", this); 
     playerFragment = (YouTubePlayerFragment) getFragmentManager().findFragmentById(R.id.VideoFragment); 
     playerFragment.initialize("API KEY", this); 
    } 


    @Override 
    public void onInitializationSuccess(YouTubeThumbnailView youTubeThumbnailView, YouTubeThumbnailLoader youTubeThumbnailLoader) { 
     thumbnailLoader = youTubeThumbnailLoader; 
     youTubeThumbnailLoader.setOnThumbnailLoadedListener(MainActivity.this); 
     thumbnailLoader.setPlaylist("PLAYLIST ID"); 
    } 

    @Override 
    public void onInitializationFailure(YouTubeThumbnailView youTubeThumbnailView, YouTubeInitializationResult youTubeInitializationResult) { 

    } 


    public void add() { 
     adapter.notifyDataSetChanged(); 
     if (thumbnailLoader.hasNext()) 
      thumbnailLoader.next(); 
    } 

    @Override 
    public void onThumbnailLoaded(YouTubeThumbnailView youTubeThumbnailView, String s) { 
     thumbnailViews.add(youTubeThumbnailView.getDrawable()); 
     VideoId.add(s); 
     add(); 
    } 

    @Override 
    public void onThumbnailError(YouTubeThumbnailView youTubeThumbnailView, YouTubeThumbnailLoader.ErrorReason errorReason) { 

    } 

    @Override 
    public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) { 
     Player=youTubePlayer; 
     Player.setOnFullscreenListener(new YouTubePlayer.OnFullscreenListener() { 
      @Override 
      public void onFullscreen(boolean b) { 
       VideoList.setVisibility(b?View.GONE:View.VISIBLE); 
      } 
     }); 
    } 

    @Override 
    public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) { 

    } 

    public class VideoListAdapter extends RecyclerView.Adapter<VideoListAdapter.MyView>{ 

    public class MyView extends RecyclerView.ViewHolder{ 

     ImageView imageView; 
     public MyView(View itemView) { 
      super(itemView); 
      imageView= (ImageView) itemView.findViewById(R.id.thumbnailView); 
     } 

    } 

    @Override 
    public VideoListAdapter.MyView onCreateViewHolder(ViewGroup parent, int viewType) { 
     View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.video_row, parent, false); 
     return new MyView(itemView); 
    } 

    @Override 
    public void onBindViewHolder(VideoListAdapter.MyView holder, final int position) { 
     holder.imageView.setImageDrawable(thumbnailViews.get(position)); 
     holder.imageView.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Player.cueVideo(VideoId.get(position)); 
      } 
     }); 
    } 

    @Override 
    public int getItemCount() { 
     return thumbnailViews.size(); 
    } 
} 
} 

activity_main & video_row

1

Вы можете использовать recyclerView для списка. Я сделал это, используя вызовы отдыха Youtube api. Вам нужно будет получить ключ браузера с консоли разработчика Google. Я объяснил это в своем ответе здесь:

https://stackoverflow.com/a/41201084/3689744

Смежные вопросы