// -------------------------------------------------- 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(); } }); }