package com.duguang.baseanimation.ui.customview.morecustom;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.duguang.baseanimation.R;
import com.duguang.baseanimation.ui.base.BaseActivity;
import com.duguang.baseanimation.ui.customview.morecustom.biaopan.BiaoPanData;
import com.duguang.baseanimation.ui.customview.morecustom.biaopan.BiaoPanview;
/**
* ViewPager+ScrollView+ListView效果 主页面
* @author Administrator
*
*/
public class MoreCustomMainActivity extends BaseActivity {
private View view;
private String[] lxs;
private String[] titles;
private NonScrollListView lv;
private TextView aqzs;
private ImageView img;
private ImageView img_init_1;
private ImageView img_init_2;
private TextView jkzs;
private ImageView jt;
private ImageView jt2;
private LinearLayout ll_xq;
private LinearLayout ll_xy;
private RelativeLayout relative1;
private RelativeLayout rt_1;
private RelativeLayout rt_2;
private RelativeLayout rt_title;
private TextView tv_days;
private TextView tv_days2;
private TextView tv_init_1;
private TextView tv_init_2;
private TextView tv_init_3;
private TextView tv_init_4;
private TextView tv_name;
private TextView tv_nr;
private TextView tv_song;
private TextView tv_title2;
private int[] vs;
private int[] imgs;
private TextView tv_title;
private List<String> lx;
// private ViewPager viewpager;
private MyPageAdapter viewpageAdapter;
private ArrayList<View> viewList;
private ListView lv1;
private ListView lv2;
private ListView lv3;
private int dataNum = 10;
@Override
public void setView() {
// requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_custom_morecustom_main);
}
@Override
public void initView() {
prepareData();
ViewPager viewpager = (ViewPager)findViewById(R.id.viewpager);
viewpageAdapter = new MyPageAdapter();
viewpager.setAdapter(viewpageAdapter);
lv1 = (ListView) findViewById(R.id.lv1);
MyListAdapter1 adapter1 = new MyListAdapter1();
lv1.setAdapter(adapter1);
new ListUtils(this).setListViewHeightBasedOnChildren(lv1);
lv1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
System.out.println("click"+position);
}
});
lv2 = (ListView) findViewById(R.id.lv2);
MyListAdapter2 adapter2 = new MyListAdapter2();
lv2.setAdapter(adapter2);
new ListUtils(this).setListViewHeightBasedOnChildren(lv2);
lv3 = (ListView) findViewById(R.id.lv3);
MyListAdapter3 adapter3 = new MyListAdapter3();
lv3.setAdapter(adapter3);
int totalHeight = dip2px(this, 35) * 3;
ViewGroup.LayoutParams params = lv3.getLayoutParams();
params.height = totalHeight
+ (lv3.getDividerHeight() * (lv3.getCount() - 1));
// listView.getDividerHeight()获取子项间分隔符占用的高度
// params.height最后得到整个ListView完整显示需要的高度
lv3.setLayoutParams(params);
}
@Override
public void setListener() {
// TODO Auto-generated method stub
}
private class MyListAdapter3 extends BaseAdapter {
@Override
public int getCount() {
return dataNum;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView view = new TextView(MoreCustomMainActivity.this);
view.setText("理想丰满回复你发的《生如夏花》"+position);
view.setTextSize(14);
AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams(LayoutParams.MATCH_PARENT, dip2px(getApplicationContext(), 35));
view.setGravity(Gravity.CENTER_VERTICAL);
view.setLayoutParams(layoutParams);
view.setBackgroundResource(android.R.drawable.editbox_background);
return view;
}
}
private class MyListAdapter1 extends BaseAdapter {
@Override
public int getCount() {
return dataNum;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = View.inflate(getApplicationContext(),
R.layout.activity_custom_morecustom_lv1_item, null);
return view;
}
}
private class MyListAdapter2 extends BaseAdapter {
@Override
public int getCount() {
return dataNum;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = View.inflate(getApplicationContext(),
R.layout.activity_custom_morecustom_lv1_item, null);
return view;
}
}
private void prepareData() {
viewList = new ArrayList<View>();
ImageView view1 = new ImageView(this);
view1.setImageResource(R.drawable.icon_morecustom_launcher);
viewList.add(view1);
LinearLayout view2 = (LinearLayout) View.inflate(
getApplicationContext(), R.layout.activity_custom_morecustom_biaopan_view, null);
BiaoPanview biaopan = (BiaoPanview) view2.findViewById(R.id.biaopan);
BiaoPanData data = new BiaoPanData();
data.setTianqi("晴");
data.setChengdu("空气正常");
data.setCity("北京");
data.setQiwen(9);
data.setZhiliang(101);
data.setTishi("可以多参加户外活动,呼吸空气");
biaopan.setBiaopanData(data);
viewList.add(view2);
}
class MyPageAdapter extends PagerAdapter {
@Override
public int getCount() {
return viewList.size();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(viewList.get(position));
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(viewList.get(position));
return viewList.get(position);
}
}
/**
* 根据手机的分辨率从 dp 的单位 转成为 px(像素)
*/
public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
/**
* 根据手机的分辨率从 px(像素) 的单位 转成为 dp
*/
public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
}