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;
}
}