Exemplo n.º 1
0
  // --------------------------------------------------
  void initMyView() {
    // 退出事件
    findViewById(R.id.go_back)
        .setOnClickListener(
            new OnClickListener() {
              @Override
              public void onClick(View v) {
                // TODO Auto-generated method stub
                onExitProc();
              }
            });

    mLoading = CustomProgressDialog.createDialog(this);
    mLoading.setMessage(getResources().getString(R.string.default_loading_txt));
    mLoading.show();

    // 集组显示
    mSetsHList = (HorizontalListView) findViewById(R.id.id_sethlist);
    mSetsAdapter = new SetsHListAdapter(this);
    mSetsHList.setAdapter(mSetsAdapter);

    mSetsHList.setOnItemClickListener(
        new OnItemClickListener() {
          @Override
          public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            // TODO Auto-generated method stub
            setCurSetGrpIdx(arg2);
          }
        });

    mHListView = (HorizontalListView) findViewById(R.id.id_horizontalScrollView);
    mAdapter = new HorizontalScrollViewAdapter(this, mData, getIntent().getStringExtra("pic"));
    mHListView.setAdapter(mAdapter);

    mHListView.setOnItemClickListener(
        new OnItemClickListener() {
          @Override
          public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            // TODO Auto-generated method stub
            Logger.LOGD("", "=================== onitemclick :" + arg2);
            ((HorizontalScrollViewAdapter) arg0.getAdapter()).notifyDataSetChanged();
            mPlayingIdx = 0;
            myPlay(arg2);
          }
        });

    mHListView.setOnScrollListener(
        new OnScrollListener() {
          @Override
          public void onScrollStateChanged(View view, int scrollState) {
            // TODO Auto-generated method stub
          }

          // 这里两个工作:1. 数据预请求;2.集组焦点的切换。
          @Override
          public void onScroll(
              View view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
            // TODO Auto-generated method stub
            Logger.LOGD(
                "",
                "onScroll: " + firstVisibleItem + "," + visibleItemCount + "," + totalItemCount);

            // 对于请求的数据要先判断是否已经请求过了。
            if (firstVisibleItem + visibleItemCount + 12 >= totalItemCount // 注意next函数,尽可能一致
                && mData.size() > visibleItemCount
                && mData.size() >= PAGE_SIZE) { // 数据至少要满屏
              // 另外注意,这里的mCurPg,只有当请求成功,它的值才会变更。
              queryPlayList(mCurPg + 1);
              return;
            }

            // 1. totalItemCount >0
            // 2. firstVisibleItem: idx for the first item of data
            // 3. visibleItemCount
            if (totalItemCount > 0) {
              float end = firstVisibleItem + visibleItemCount;
              int setgrpidx = (int) (Math.ceil(end / PAGE_SIZE) - 1);
              if (setgrpidx >= 0 && setgrpidx != mSetsHList.getSelectPosition()) {
                Logger.LOGD("", "############ Alter setgroup :" + setgrpidx);
                mCurSetsGrpIdx = setgrpidx;
                mSetsHList.setSelection(setgrpidx);
              }
            }
          }
        });

    initSurfaceView();

    mImgPauseFlag = (ImageView) findViewById(R.id.img_pause);

    mBtnPlay = (Button) findViewById(R.id.btn_play);
    mBtnPlay.setOnClickListener(
        new OnClickListener() {
          @Override
          public void onClick(View v) {
            // TODO Auto-generated method stub
            if (isPlaying()) {
              Logger.LOGD("", "btn: isplaying!!, begin to pause");
              do_pause();
              // mBtnPlay.setBackgroundResource(R.drawable.mv_btn_play);
            } else if (mbPause) {
              Logger.LOGD("", "btn: ispaused,begin to resmue!!");
              // mBtnPlay.setBackgroundResource(R.drawable.mv_btn_pause);
              do_resume();
            }

            ctrlShowMgr();
          }
        });
    mHeaderContainer = (RelativeLayout) findViewById(R.id.header_container);
    mCtrlContainer = (RelativeLayout) findViewById(R.id.ctrlbar_container);
    mMvTitle = (TextView) findViewById(R.id.mv_title);
    mMvTitle.setText("                       ");

    mLayerTop = (RelativeLayout) findViewById(R.id.layer_top);

    mTvCurtm = (TextView) findViewById(R.id.curtime);
    mTvDur = (TextView) findViewById(R.id.dur);

    sBar = (SeekBar) findViewById(R.id.seekb);
    sBar.setOnSeekBarChangeListener(
        new OnSeekBarChangeListener() {
          @Override
          public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            // TODO Auto-generated method stub
          }

          @Override
          public void onStartTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub
            Logger.LOGD("", "seekbar.......onStartTrackingTouch");
            // ctrlShowMgr();
          }

          @Override
          public void onStopTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub
            int dest = seekBar.getProgress();
            int sMax = sBar.getMax();
            mPlayer.seekTo(mDuration * dest / sMax);

            Logger.LOGD("", "seekbar.......onStopTrackingTouch");
            // ctrlShowMgr();
          }
        });
  }