package com.partynetwork.iparty.imessage; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.LinearLayout; import android.widget.TextView; import com.partynetwork.dataprovider.util.DisplayUtil; import com.partynetwork.iparty.R; import com.partynetwork.iparty.imessage.ChatActivity.MorePageListener; import com.partynetwork.myui.CirclePageIndicator; import com.partynetwork.myui.JazzyViewPager; import com.partynetwork.myui.JazzyViewPager.TransitionEffect; public class MorePageInit { public static final int NUM_PAGE = 1;// 总共有多少页 private Context context; private LinearLayout bodyView; private List<MoreItem> moreMap = new ArrayList<MoreItem>(); // 当前选择的页数 private int currentPage = 0; private MorePageListener morePageListener; MorePageInit(Context context, LinearLayout bodyView, MorePageListener morePageListener) { this.context = context; this.bodyView = bodyView; this.morePageListener = morePageListener; initView(); } private void initView() { if (bodyView == null) { return; } MoreItem item = new MoreItem(); item.title = "照片"; item.src = R.drawable.chat_panel_picture_selector; moreMap.add(item); MoreItem item2 = new MoreItem(); item2.title = "拍照"; item2.src = R.drawable.chat_panel_camera_selector; moreMap.add(item2); initMorePage(); } private void initMorePage() { List<View> lv = new ArrayList<View>(); for (int i = 0; i < NUM_PAGE; ++i) { lv.add(getGridView(i)); } // bodyView.setVisibility(View.GONE); bodyView.setOrientation(LinearLayout.VERTICAL); bodyView.removeAllViews(); JazzyViewPager faceViewPager = new JazzyViewPager(context); faceViewPager .setPersistentDrawingCache(ViewGroup.PERSISTENT_ANIMATION_CACHE); FacePageAdeapter adapter = new FacePageAdeapter(lv, faceViewPager); faceViewPager.setAdapter(adapter); faceViewPager.setBackgroundColor(context.getResources().getColor( R.color.gray_bg)); faceViewPager.setCurrentItem(currentPage); faceViewPager.setTransitionEffect(TransitionEffect.Standard); CirclePageIndicator indicator = new CirclePageIndicator(context); indicator.setViewPager(faceViewPager); adapter.notifyDataSetChanged(); indicator.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int arg0) { currentPage = arg0; } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { // do nothing } @Override public void onPageScrollStateChanged(int arg0) { // do nothing } }); bodyView.addView(faceViewPager, new android.view.ViewGroup.LayoutParams( android.view.ViewGroup.LayoutParams.MATCH_PARENT, DisplayUtil.dip2px(context, 120))); bodyView.addView(indicator); } private GridView getGridView(int i) { // TODO Auto-generated method stub GridView gv = new GridView(context); // 列 gv.setNumColumns(4); gv.setSelector(new ColorDrawable(Color.TRANSPARENT));// 屏蔽GridView默认点击效果 gv.setBackgroundColor(Color.TRANSPARENT); gv.setCacheColorHint(Color.TRANSPARENT); gv.setHorizontalSpacing(1); gv.setVerticalSpacing(1); gv.setLayoutParams(new android.view.ViewGroup.LayoutParams( android.view.ViewGroup.LayoutParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.MATCH_PARENT)); gv.setGravity(Gravity.CENTER); gv.setAdapter(new MoreAdapter(context)); gv.setOnTouchListener(forbidenScroll); gv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { morePageListener.click(arg2); } }); return gv; } // 防止乱pageview乱滚动 private OnTouchListener forbidenScroll = new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_MOVE) { return true; } return false; } }; private class MoreAdapter extends BaseAdapter { private Context context; public MoreAdapter(Context context) { this.context = context; } @Override public int getCount() { return moreMap.size(); } @Override public Object getItem(int position) { return moreMap.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { TextView viewHolder; if (convertView == null) { convertView = new TextView(context); } viewHolder = (TextView) convertView; viewHolder.setGravity(Gravity.CENTER); MoreItem item = (MoreItem) getItem(position); viewHolder.setTextSize(13f); viewHolder.setTextColor(context.getResources().getColor( R.color.gray)); viewHolder.setText(item.title); Drawable top = context.getResources().getDrawable(item.src); top.setBounds(0, 0, top.getMinimumWidth(), top.getMinimumHeight()); viewHolder.setCompoundDrawables(null, top, null, null); return viewHolder; } } private class MoreItem { String title; int src; } }