Android 單頁面 音樂播放器和電影播放

1,音樂播放器
需求:很簡單能播放音樂 ,下一首上一首。就完事。還有個翻頁 按類型查找。
2,電影播放器:能夠播放電影,快進,後退。這裏直接用的 框架。
由於比較簡單,就全部寫在一個頁面了。判斷數據類型。顯示不同的頁面。

下面是代碼;



import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.callback.StringCallback;
import com.lzy.okgo.model.Response;

import java.io.IOException;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import cn.jzvd.JZVideoPlayer;
import cn.jzvd.JZVideoPlayerStandard;
import spa.nabo.com.nabospa.R;
import spa.nabo.com.nabospa.adapter.DianshiJvAdapter;
import spa.nabo.com.nabospa.adapter.MovieTypeAdapter;
import spa.nabo.com.nabospa.adapter.MoviesAdapter;
import spa.nabo.com.nabospa.adapter.MusicAdapter;
import spa.nabo.com.nabospa.adapter.MusicTypeAdapter;
import spa.nabo.com.nabospa.base.BaseActivity;
import spa.nabo.com.nabospa.bean.MusicBean;
import spa.nabo.com.nabospa.bean.MusicTypeBean;
import spa.nabo.com.nabospa.bean.VideosBeans;
import spa.nabo.com.nabospa.bean.VideosTypeBean;
import spa.nabo.com.nabospa.config.Config;
import spa.nabo.com.nabospa.config.URL;
import spa.nabo.com.nabospa.utils.GsonUtils;

import static spa.nabo.com.nabospa.config.URL.getVideos;

/**
 * Created by ${陳文傑} on 2018/4/2 0002.
 * Email:[email protected]
 * 描述:電影
 */
public class MoviesActivity extends BaseActivity implements MediaPlayer.OnCompletionListener, MediaPlayer.OnErrorListener, Runnable, View.OnClickListener {
    @BindView(R.id.back_ll)
    LinearLayout backLl;
    @BindView(R.id.movie_type_rl)
    RecyclerView movieTypeRl;
    @BindView(R.id.zuixin_tv)
    TextView zuixinTv;
    @BindView(R.id.zuire_tv)
    TextView zuireTv;
    @BindView(R.id.haoping_tv)
    TextView haopingTv;
    @BindView(R.id.title)
    spa.nabo.com.nabospa.view.title title;
    @BindView(R.id.movie_rv)
    RecyclerView movieRv;
    @BindView(R.id.movie_ll)
    LinearLayout movieLl; // 默認顯示頁面
    @BindView(R.id.movie_xiangqing_ll)
    RelativeLayout movieXiangqingLl;//詳情頁面
    @BindView(R.id.left_iv)
    ImageView leftIv;
    @BindView(R.id.yeshu)
    TextView yeshu;
    @BindView(R.id.right_iv)
    ImageView rightIv;
    @BindView(R.id.xq_movie_iv)
    ImageView xqMovieIv;
    @BindView(R.id.xq_movie_name_tv)
    TextView xqMovieNameTv;//名稱
    @BindView(R.id.xq_movie_zhuyan_tv)
    TextView xqMovieZhuyanTv;//主演
    @BindView(R.id.xq_movie_daoyan_tv)
    TextView xqMovieDaoyanTv;//導演
    @BindView(R.id.xq_movie_type_tv)
    TextView xqMovieTypeTv;//電影類型
    @BindView(R.id.xq_movie_addr_tv)
    TextView xqMovieAddrTv;//地址
    @BindView(R.id.xq_movie_paleyNum_tv)
    TextView xqMoviePaleyNumTv;//播放次數
    @BindView(R.id.xq_movie_jishu_rc)
    RecyclerView xqMovieJishuRc;//每一集
    @BindView(R.id.xq_movie_jianjie_tv)
    TextView xqMovieJianjieTv;// 介紹
    @BindView(R.id.hei_ll)
    LinearLayout heiLl; //電影和音樂,不同的高度
    @BindView(R.id.fanye_ll)
    LinearLayout fanyeLl;//f翻頁按鈕
    /*音樂控件*/
    @BindView(R.id.music_play_img)
    ImageView musicPlayImg; //當前播放的音樂圖片
    @BindView(R.id.music_play_shang)
    ImageView musicPlayShang;//上一首
    @BindView(R.id.music_play_stop)
    ImageView musicPlayStop;//播放/暫停
    @BindView(R.id.music_play_next)
    ImageView musicPlayNext;//下一首
    @BindView(R.id.music_info_tv)
    TextView musicInfoTv;//歌曲名字-歌手
    @BindView(R.id.music_play_volume1_sb)
    SeekBar musicPlayVolume1Sb;//音量的控制
    @BindView(R.id.music_play_sb)
    SeekBar musicPlaySb;//進度條的控制
    @BindView(R.id.music_play_time_tv)
    TextView musicPlayTimeTv;//播放時間
    @BindView(R.id.music_play_times_tv)
    TextView musicPlayTimesTv;//總時長
    @BindView(R.id.play_music_ll)
    LinearLayout playMusicLl;//進入音樂就顯示這個。電影就隱藏

    private List<VideosTypeBean.MsgBodyBean> listVideoType;//電影類型
    private MovieTypeAdapter typeAdapter;//類型  適配器
    private MoviesAdapter moviesAdapter;//電影適配器
    private VideosBeans.MsgBodyBean.ListBean.VideosAllBean videoPaths;//電影播放路徑。
    private List<VideosBeans.MsgBodyBean.ListBean.VideosAllBean> listVideoJishu;//電影播放路徑。
    private List<VideosBeans.MsgBodyBean.ListBean> listVideos;//電影信息

    public static int pageNo = 1;//電影頁數
    public static int typeID;//電影類型ID
    private DianshiJvAdapter mJiShuAdapter;//電視劇 集數 適配器。
    private int movieOrMusicType = 1;//默認 進來是電影,1      音樂是0
    private List<MusicTypeBean.MsgBodyBean> mMusicTypes;// 音樂類型
    private List<MusicBean.MsgBodyBean> mSongs;//每個類型下面的音樂
    private MusicAdapter musicAdapter;//音樂
    private MusicTypeAdapter musicTypeAdapter;//音樂
    private int songPageNo = 1;//音樂。

    private int currIndexMusic = 0;// 表示當前播放的音樂索引
    private boolean flagMusic = true;//控制進度條線程標記
    // 定義當前播放器的狀態״̬
    private static final int IDLE = 0;
    private static final int PAUSE = 1;
    private static final int START = 2;
    private static final int CURR_TIME_VALUE = 1;
    private int currStateMusic = IDLE; // 當前播放器的狀態
    //定義線程池(同時只能有一個線程運行)
    ExecutorService esaa = Executors.newSingleThreadExecutor();
    private MediaPlayer mp;//音樂
    JZVideoPlayerStandard jzVideoPlayerStandard;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_movie);
        ButterKnife.bind(this);
        movieOrMusicType = getIntent().getIntExtra("mmid", 1);
        //
        if (movieOrMusicType == 0) {//音樂
            getAllMusic();
            initViewMusic();
        } else {//電影
            getAllVideos();
            initViewMovie();
        }
    }


    //初始化電影
    private void initViewMovie() {
        jzVideoPlayerStandard = findViewById(R.id.videoplayer);
        LinearLayoutManager gridLayoutManager = new LinearLayoutManager(this);
        movieTypeRl.setLayoutManager(gridLayoutManager);
        //具體 電影
        GridLayoutManager gridLayoutManagers = new GridLayoutManager(MoviesActivity.this, 6);
        movieRv.setLayoutManager(gridLayoutManagers);
        //
        playMusicLl.setVisibility(View.GONE);

    }
    /**
     *  電視劇適配器。、
     */
    public void initDianshiJv(final List<VideosBeans.MsgBodyBean.ListBean.VideosAllBean> videoPath, final String path){
        GridLayoutManager gridLayoutManagers = new GridLayoutManager(MoviesActivity.this, 7);
        xqMovieJishuRc.setVisibility(View.VISIBLE);
        xqMovieJishuRc.setLayoutManager(gridLayoutManagers);
        mJiShuAdapter =new DianshiJvAdapter(videoPath,MoviesActivity.this);
        xqMovieJishuRc.setAdapter(mJiShuAdapter);

    }

    /**
     * 電影播放前。
     */
     public void initMovePlay(String path,String name,String img){
         jzVideoPlayerStandard.setVisibility(View.VISIBLE);
         jzVideoPlayerStandard.setUp(path,JZVideoPlayerStandard.SCREEN_WINDOW_NORMAL, name);
         Glide.with(MoviesActivity.this)
                 .load(img)
                 .into(jzVideoPlayerStandard.thumbImageView);
        }

    @OnClick({R.id.back_ll, R.id.zuixin_tv, R.id.zuire_tv, R.id.haoping_tv, R.id.left_iv, R.id.right_iv, R.id.music_play_shang, R.id.music_play_stop, R.id.music_play_next})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.back_ll:
                if (movieXiangqingLl.getVisibility() == View.VISIBLE) {//不是顯示的。 t
                    movieXiangqingLl.setVisibility(View.GONE);
                    movieLl.setVisibility(View.VISIBLE);
                } else {//顯示的話。
                    finish();
                }
                break;
            case R.id.zuixin_tv:
                break;
            case R.id.zuire_tv:
                break;
            case R.id.haoping_tv:
                break;
            case R.id.left_iv:
                if (pageNo == 1) {

                } else {
                    pageNo--;
                    getVideos(listVideoType.get(typeID).getId(), pageNo);
                }
                yeshu.setText(pageNo + "");
                break;
            case R.id.right_iv:
                if (listVideos.size() == 0) {
                    Toast.makeText(this, "沒有更多數據!", Toast.LENGTH_SHORT).show();
                } else {
                    pageNo++;
                    getVideos(listVideoType.get(typeID).getId(), pageNo);
                    yeshu.setText(pageNo + "");
                }
                break;
//            case R.id.xq_play_tv: //立即播放按鈕
//                break;
            case R.id.music_play_shang://上一首
                previous();
                break;
            case R.id.music_play_stop://暫停播放
                play();
                break;
            case R.id.music_play_next://下一首
                next();
                break;
        }
    }

    /**
     * 獲取電影類型
     */
    public void getAllVideos() {
        OkGo.<String>get(URL.getAllVideos)
                .tag(this)
                .execute(new StringCallback() {
                    @Override
                    public void onSuccess(Response<String> listType) {
                        VideosTypeBean vyb = GsonUtils.GsonToBean(listType.body(), VideosTypeBean.class);
                        listVideoType = vyb.getMsgBody();
                        Log.e("路徑--", listType.body() + URL.getAllVideos);
                        Config.sVideoTypeBean = vyb;
                        typeAdapter = new MovieTypeAdapter(listVideoType, MoviesActivity.this);
                        movieTypeRl.setAdapter(typeAdapter);
                        getVideos(listVideoType.get(0).getId(), pageNo);//默認查詢第一個
                        //類型
                        typeAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
                            @Override
                            public void onItemClick(BaseQuickAdapter adapter, View view, final int position) {
                                pageNo = 1;
                                typeID = position;
                                getVideos(listVideoType.get(position).getId(), pageNo);
                                yeshu.setText(pageNo + "");
                                //點擊事件

                            }
                        });

                    }
                });
    }

    /**
     * 獲取類型下面的所有電影
     * @param typeID 類型iD
     * @param pageNo 頁數
     */
    public void getVideos(int typeID, int pageNo) {
        Log.e("路徑--類型下所有電影", getVideos + typeID + "&pageNo=" + pageNo + "&pageSize=" + 12);
        OkGo.<String>get(getVideos + typeID + "&pageNo=" + pageNo + "&pageSize=" + 12)
                .tag(this)
                .execute(new StringCallback() {
                    @Override
                    public void onSuccess(Response<String> response) {
                          VideosBeans videosBean = GsonUtils.GsonToBean(response.body(), VideosBeans.class);
                            listVideos=videosBean.getMsgBody().getList();

                        if (listVideos.size() != 0) {
                            moviesAdapter = new MoviesAdapter(listVideos, MoviesActivity.this);
                            movieRv.setAdapter(moviesAdapter);
                            //查詢類型下面的
                            moviesAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
                                @Override
                                public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
                                    //點擊進入詳情頁
                                    movieXiangqingLl.setVisibility(View.VISIBLE);
                                     movieLl.setVisibility(View.GONE);
                                    //設置詳情頁的數據。
                                    setXiangQing(listVideos.get(position).getVoidprogramimg(),
                                            listVideos.get(position).getVoidprogramname(),
                                            listVideos.get(position).getVoidprogramdirector(),
                                            listVideos.get(position).getVoidprogramstarring(),
                                            listVideos.get(position).getFilmtype(),
                                            listVideos.get(position).getArea(),
                                            "242323",
                                            listVideos.get(position).getVoidprogramdescription());
                                    //播放路徑。
                                    listVideoJishu =listVideos.get(position).getVideos();

                                    Log.e("o電視劇下面每一部 ",listVideoJishu.size()+"" );

                                    //查找是否是連續劇
                                        int types =listVideos.get(position).getTypes();//1 。
                                        if (types==0){//電視劇
                                            initDianshiJv(listVideoJishu,listVideoJishu.get(position).getVoidpath());
                                            initMovePlay(listVideoJishu.get(position).getVoidpath(),
                                                    listVideos.get(position).getVoidprogramname(),
                                                    listVideos.get(position).getVoidprogramimg()
                                            );
                                            final String imgpath=  listVideos.get(position).getVoidprogramimg();
                                            mJiShuAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
                                                @Override
                                                public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
                                                    //取出播放鏈接。跳轉到播放頁面
                                                    initMovePlay(listVideoJishu.get(position).getVoidpath(),
                                                            listVideoJishu.get(position).getVoidname(),
                                                                    imgpath
                                                    );

                                                }
                                            });

                                           }else{//電影
                                            xqMovieJishuRc.setVisibility(View.GONE);
                                            String path=listVideoJishu.get(0).getVoidpath();
                                            initMovePlay(path,listVideos.get(position).getVoidprogramname(),
                                                    listVideos.get(position).getVoidprogramimg()
                                                    );
                                     }
                                }
                            });
                        } else {
                            Toast.makeText(MoviesActivity.this, "沒有更多數據", Toast.LENGTH_SHORT).show();
                        }
                    }
                });
    }

    /**
     * 設置詳情
     *
     * @param name
     * @param zhuyan
     * @param daoyan
     * @param type
     * @param addr
     * @param Num
     * @param jianjie
     */
    public void setXiangQing(String path, String name, String zhuyan, String daoyan, String type, String addr, String Num, String jianjie) {
        Glide.with(MoviesActivity.this)
                .load(path)
                .into(xqMovieIv);

        xqMovieNameTv.setText(name);      //名稱
        xqMovieZhuyanTv.setText("主演:" + zhuyan);    //主演
        xqMovieDaoyanTv.setText("導演:" + daoyan);    //導演
        xqMovieTypeTv.setText("類型:" + type);      //電影類型
        xqMovieAddrTv.setText("製片國家:" + addr);      //地址
        xqMoviePaleyNumTv.setText("播放次數:" + Num);  //播放次數
//          xqMovieJishuRc;//每一集
        xqMovieJianjieTv.setText(jianjie);   // 介紹
    }

    //初始化 音樂
    private void initViewMusic() {
        LinearLayoutManager gridLayoutManager = new LinearLayoutManager(this);
        movieTypeRl.setLayoutManager(gridLayoutManager);

        GridLayoutManager gridLayoutManagers = new GridLayoutManager(MoviesActivity.this, 6);
        movieRv.setLayoutManager(gridLayoutManagers);
        LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) heiLl.getLayoutParams();
        params.height = 590;
        heiLl.setLayoutParams(params);
        fanyeLl.setVisibility(View.GONE);
        playMusicLl.setVisibility(View.VISIBLE);

        mp = new MediaPlayer();
        mp.setOnCompletionListener(this);
        mp.setOnErrorListener(this);
    }

    /**
     * 查詢 所有音樂 包括 類型下面的數據。
     */
    public void getAllMusic() {
        OkGo.<String>get(URL.getCategorySongs)
                .tag(this)
                .execute(new StringCallback() {
                    @Override
                    public void onSuccess(Response<String> listType) {

                        MusicTypeBean mb = GsonUtils.GsonToBean(listType.body(), MusicTypeBean.class);
                        mMusicTypes = mb.getMsgBody();

                        //類型適配器
                        musicTypeAdapter = new MusicTypeAdapter(mMusicTypes, MoviesActivity.this);
                        movieTypeRl.setAdapter(musicTypeAdapter);

                        getAllSongs(mMusicTypes.get(0).getId(), songPageNo, 20);

                        musicTypeAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
                            @Override
                            public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
                                getAllSongs(mMusicTypes.get(position).getId(), songPageNo, 20);
                                //類型下面的音樂
                            }
                        });


                    }
                });
    }

    //&vodPartId=10&pageNo=2&pageSize=20
    public void getAllSongs(int typeID, int songPageNo, int songSize) {
//        OkGo.<String>get(URL.getAllSongs+"&vodPartId"+typeID+"pageNo"+songPageNo+"pageSize"+songSize)
        OkGo.<String>get(URL.getAllSongs)
                .tag(this)
                .execute(new StringCallback() {
                    @Override
                    public void onSuccess(Response<String> response) {
                        Log.e("onSuccess音樂: .", response.body());
                        MusicBean musicBean = GsonUtils.GsonToBean(response.body(), MusicBean.class);
                        mSongs = musicBean.getMsgBody();
                        if (mSongs.size() == 0) {

                        } else {
                            musicAdapter = new MusicAdapter(mSongs, MoviesActivity.this);
                            movieRv.setAdapter(musicAdapter);
                            Log.e("onSuccess音樂: .", mSongs.get(0).getSongName());
                            musicAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
                                @Override
                                public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
                                    currIndexMusic = position;//當前音樂點擊的索引
                                    start();
                                    Glide.with(MoviesActivity.this).
                                            load(mSongs.get(position).getLogo())
                                            .into(musicPlayImg);

                                }
                            });
                        }

                    }
                });
    }


    @Override
    public void onCompletion(MediaPlayer mp) {//監聽播放完成。自動播放下一首。
        if (mSongs.size() > 0) {
            next();
        } else {
            Toast.makeText(this, "播放列表爲空", Toast.LENGTH_SHORT).show();
        }

    }

    @Override
    public boolean onError(MediaPlayer mp, int what, int extra) {
        mp.reset();
        return false;
    }

    @Override
    protected void onDestroy() {//關閉音樂
        if (mp != null) {
            flagMusic = false;
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            //釋放資源
            mp.release();
//            mp.stop();
//            mp.pause();
            if (mp != null) {
                mp = null;
            }
        }
        super.onDestroy();
    }
    //上一首
    private void previous() {
        if ((currIndexMusic - 1) >= 0) {
            currIndexMusic--;
            start();
        } else {
            Toast.makeText(this, "當前已經是第一首歌曲了", Toast.LENGTH_SHORT).show();
        }
    }
    //下一自首
    private void next() {
        if (currIndexMusic + 1 < mSongs.size()) {
            currIndexMusic++;
            start();
        } else {
            Toast.makeText(this, "當前已經是最後一首歌曲了", Toast.LENGTH_SHORT).show();
        }
    }


    //開始播放
    private void start() {
        if (mSongs.size() > 0 && currIndexMusic < mSongs.size()) {
            String SongPath = mSongs.get(currIndexMusic).getMusicFile();
            mp.reset();
            try {
                mp.setDataSource(SongPath);
                mp.prepare();
                mp.start();
                initSeekBar();
                esaa.execute(this);
                currStateMusic = PAUSE;
                //中文
                musicInfoTv
                        .setText(mSongs.get(currIndexMusic).getSongName() + "-" +
                                mSongs.get(currIndexMusic).getSinger());
                musicPlayTimesTv.setText("/" + toTime(mp.getDuration()));//播放總時長
                Glide.with(this)
                        .load(R.drawable.ic_play)
                        .into(musicPlayStop);
            } catch (IOException e) {
                e.printStackTrace();
            }
        } else {
            Toast.makeText(this, "播放列表爲空", Toast.LENGTH_SHORT).show();
        }
    }

    //初始化SeekBar
    private void initSeekBar() {
        musicPlaySb.setMax(mp.getDuration());
        musicPlaySb.setProgress(0);
        musicPlayTimeTv.setText(toTime(mp.getDuration()));
        musicPlaySb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                //是否由用戶改變
                if (fromUser) {
                    mp.seekTo(progress);
                }
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });
    }
    private String toTime(int time) {
        int minute = time / 1000 / 60;
        int s = time / 1000 % 60;
        String mm = null;
        String ss = null;
        if (minute < 10) mm = "0" + minute;
        else mm = minute + "";

        if (s < 10) ss = "0" + s;
        else ss = "" + s;

        return mm + ":" + ss;
    }

    private void play() {
        switch (currStateMusic) {
            case IDLE:
                start();

                currStateMusic = PAUSE;
                break;
            case PAUSE:
                mp.pause();
                Glide.with(this)
                        .load(R.drawable.ic_play_n)
                        .into(musicPlayStop);
                currStateMusic = START;
                break;
            case START:
                mp.start();
                Glide.with(this)
                        .load(R.drawable.ic_play)
                        .into(musicPlayStop);
                currStateMusic = PAUSE;
        }
    }

    private Handler hander = new Handler() {
        public void handleMessage(android.os.Message msg) {
            switch (msg.what) {
                case CURR_TIME_VALUE:
                    //設置當前時間
                    musicPlayTimeTv.setText(msg.obj.toString());
                    break;
                default:
                    break;
            }
        }
    };

    public void run() {
        flagMusic = true;
        while (flagMusic) {
            if (null!=mp){
            if (mp.getCurrentPosition() < musicPlaySb.getMax()) {
                musicPlaySb.setProgress(mp.getCurrentPosition());
                Message msg = hander.obtainMessage(CURR_TIME_VALUE, toTime(mp.getCurrentPosition()));
                hander.sendMessage(msg);

                try {
                    Thread.sleep(500);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            }else {
                flagMusic = false;
            }
        }
    }
    @Override
    public void onBackPressed() {
        if (JZVideoPlayer.backPress()) {
            return;
        }
        super.onBackPressed();
    }
    @Override
    protected void onPause() {
        super.onPause();
        JZVideoPlayer.releaseAllVideos();
    }
    @Override
    public void onClick(View v) {

    }
}

XML頁面

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/ic_bg"
    android:orientation="vertical">
    <spa.nabo.com.nabospa.view.title
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </spa.nabo.com.nabospa.view.title>
        <include layout="@layout/back" />
    <LinearLayout
        android:id="@+id/movie_ll"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:visibility="visible">
        <android.support.v7.widget.RecyclerView
            android:id="@+id/movie_type_rl"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="7">
        </android.support.v7.widget.RecyclerView>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:clipChildren="true"
            android:orientation="vertical">

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="50dp"
                android:orientation="horizontal">

                <TextView
                    android:id="@+id/zuixin_tv"
                    android:layout_width="100dp"
                    android:layout_height="50dp"
                    android:clickable="true"
                    android:focusable="true"
                    android:gravity="center"
                    android:text="最新"
                    android:textColor="@drawable/movies_type_select_font_heibai"
                    android:textSize="18sp" />

                <TextView
                    android:id="@+id/zuire_tv"
                    android:layout_width="100dp"
                    android:layout_height="50dp"
                    android:layout_toRightOf="@id/zuixin_tv"
                    android:focusable="true"
                    android:gravity="center"
                    android:text="最熱"
                    android:textColor="@drawable/movies_type_select_font_heibai"
                    android:textSize="18sp" />

                <TextView
                    android:id="@+id/haoping_tv"
                    android:layout_width="100dp"
                    android:layout_height="50dp"
                    android:layout_toRightOf="@id/zuire_tv"
                    android:focusable="true"
                    android:gravity="center"
                    android:text="好評"
                    android:textColor="@drawable/movies_type_select_font_heibai"
                    android:textSize="18sp" />

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="50dp"
                    android:layout_alignParentRight="true"
                    android:layout_marginRight="50dp"
                    android:gravity="center"
                    android:orientation="horizontal"
                    android:paddingRight="20dp">

                    <TextView
                        android:layout_width="200dp"
                        android:layout_height="40dp"
                        android:background="@drawable/text_boder_bai"
                        android:drawableRight="@drawable/sousuo_ic"
                        android:gravity="center|left"
                        android:hint="搜索"
                        android:padding="5dp"
                        android:textColorHint="@color/ziti_hint_font" />

                </LinearLayout>

            </RelativeLayout>

            <LinearLayout
                android:id="@+id/hei_ll"
                android:layout_width="match_parent"
                android:layout_height="510dp">

                <android.support.v7.widget.RecyclerView
                    android:id="@+id/movie_rv"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    >

                </android.support.v7.widget.RecyclerView>
            </LinearLayout>

            <LinearLayout
                android:id="@+id/fanye_ll"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="20dp"
                android:gravity="center"
                android:orientation="horizontal">

                <ImageView
                    android:id="@+id/left_iv"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:focusable="true"
                    android:src="@drawable/left_select" />

                <TextView
                    android:id="@+id/yeshu"
                    android:layout_width="40dp"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="1"
                    android:textColor="@color/font_baise_color"
                    android:textSize="18sp" />

                <ImageView
                    android:id="@+id/right_iv"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:focusable="true"
                    android:src="@drawable/right_select" />
            </LinearLayout>
            <!--播放控件-->
            <LinearLayout
                android:id="@+id/play_music_ll"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_gravity="bottom"
                android:gravity="bottom">

                <include
                    android:id="@+id/play_ll"
                    layout="@layout/music_play" />
            </LinearLayout>
        </LinearLayout>

    </LinearLayout>


    <RelativeLayout
        android:id="@+id/movie_xiangqing_ll"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:visibility="gone"
        android:padding="5dp"
        >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:orientation="vertical"
            android:id="@+id/linearLayout3">
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:orientation="horizontal">
                <ImageView
                    android:id="@+id/xq_movie_iv"
                    android:layout_width="220dp"
                    android:layout_height="270dp"
                    android:src="@color/font_baise_color" />
                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="20dp"
                    android:orientation="vertical">

                    <TextView
                        android:id="@+id/xq_movie_name_tv"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="24小時:末日重生 24Hours To Live(2017)"
                        android:textColor="@color/ziti_font"
                        android:textSize="18sp" />

                    <TextView
                        android:id="@+id/xq_movie_zhuyan_tv"
                        android:layout_width="350dp"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="10dp"
                        android:ellipsize="end"
                        android:lineSpacingExtra="10dp"
                        android:maxLines="2"
                        android:text="主演: 泰伊·謝里丹 / 奧利維亞·庫克 / 本·門德爾森 / 馬克·裏朗斯 / 麗娜·維特 / 森崎溫 / 趙家正 / 西蒙·佩吉 / T·J·米勒 / 漢娜·喬恩-卡門 / 拉爾夫·尹愛森 / 蘇珊·林奇 / 克萊爾·希金斯 / 勞倫斯·斯佩爾曼 / 佩蒂塔·維克斯 / 艾薩克·安德魯斯"
                        android:textColor="@color/ziti_font"
                        android:textSize="18sp" />

                    <TextView
                        android:id="@+id/xq_movie_daoyan_tv"

                        android:layout_width="wrap_content"

                        android:layout_height="wrap_content"
                        android:layout_marginTop="10dp"
                        android:text="導演: 史蒂文·斯皮爾伯"
                        android:textColor="@color/ziti_font"
                        android:textSize="18sp" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:id="@+id/xq_movie_type_tv"

                        android:layout_height="wrap_content"
                        android:layout_marginTop="10dp"
                        android:text="類型: 動作 / 科幻 / 冒險"
                        android:textColor="@color/ziti_font"
                        android:textSize="18sp" />


                    <TextView
                        android:id="@+id/xq_movie_addr_tv"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="10dp"
                        android:text="製片國家/地區: 美國"
                        android:textColor="@color/ziti_font"
                        android:textSize="18sp" />

                    <TextView
                        android:id="@+id/xq_movie_paleyNum_tv"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="10dp"
                        android:text="播放次數:3892次"
                        android:textColor="@color/ziti_font"
                        android:textSize="18sp" />

                </LinearLayout>


            </LinearLayout>
            <TextView
                android:layout_marginTop="30dp"
                android:id="@+id/xq_movie_jianjie_tv"
                android:layout_width="595dp"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:lineSpacingExtra="10dp"
                android:maxLines="3"
                android:text="在2045年,現實世界衰退破敗,人們沉迷於VR(虛擬現實)遊戲“綠洲(OASIS)”的虛幻世界裏尋求慰藉。馬克·裏朗斯飾演的“綠洲”的創始人臨終前宣佈,將億萬身家全部留給尋獲他隱藏的彩蛋的遊戲玩家,史上最大規模的尋寶冒險就此展開,由泰伊·謝里丹飾演的男主角韋德·沃茲(Wade Watts/Parzival)和數十億競爭者踏上奇妙而又危機重重的旅途。"
                android:textColor="@color/ziti_font"
                android:textSize="18sp"
                />
        </LinearLayout>


        <LinearLayout
            android:layout_toRightOf="@+id/linearLayout3"
            android:orientation="vertical"
            android:layout_width="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_height="wrap_content">
            <cn.jzvd.JZVideoPlayerStandard
                android:focusable="true"
                android:id="@+id/videoplayer"
                android:layout_width="match_parent"
                android:layout_height="300dp"/>
            <!--電影-->
            <android.support.v7.widget.RecyclerView
                android:visibility="gone"
                android:id="@+id/xq_movie_jishu_rc"
                android:layout_width="match_parent"
                android:layout_height="250dp">
            </android.support.v7.widget.RecyclerView>

        </LinearLayout>
    </RelativeLayout>
</LinearLayout>

期待大神們的指點。
簡單做個筆記。方便自己方便他人

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章