package iwehave.erp.web;
import iwehave.erp.helper.PageAdapterHelper;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Vector;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.AnimationSet;
import android.view.animation.TranslateAnimation;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.HorizontalScrollView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.SimpleAdapter;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.RadioGroup.OnCheckedChangeListener;
/**
* HorizontalScrollView和ViewPager联动效果 上面为HorizontalScrollView,下面为ViewPager
*/
public class MainActivity extends Activity implements OnCheckedChangeListener {
private RadioGroup mRadioGroup;
private RadioButton rbFocusNews;
private RadioButton rbEntertainment;
private RadioButton rbMilitaryScience;
private RadioButton rbSports;
private RadioButton rbTechnology;
private ImageView mImageView;
private float mCurrentCheckedRadioLeft;// 当前被选中的RadioButton距离左侧的距离
private HorizontalScrollView mHorizontalScrollView;// 上面的水平滚动控件
private ViewPager mViewPager; // 下方的可横向拖动的控件
private Vector<View> mViews;// 用来存放下方滚动的layout(layout_1,layout_2,layout_3)
ListView list;
SimpleAdapter listAdapter;
ArrayList<HashMap<String, Object>> listItems;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
initNewsWin();
initBottom();
}
// 新闻部分
private void initNewsWin() {
iniController();
iniListener();
iniVariable();
rbFocusNews.setChecked(true);
mViewPager.setCurrentItem(1);
mCurrentCheckedRadioLeft = getCurrentCheckedRadioLeft();
AdapterNews(1);
}
private void iniVariable() {
// TODO Auto-generated method stub
mViews = new Vector<View>();
mViews.add(getLayoutInflater().inflate(R.layout.news, null));
mViews.add(getLayoutInflater().inflate(R.layout.news, null));
mViews.add(getLayoutInflater().inflate(R.layout.news, null));
mViews.add(getLayoutInflater().inflate(R.layout.news, null));
mViews.add(getLayoutInflater().inflate(R.layout.news, null));
mViews.add(getLayoutInflater().inflate(R.layout.news, null));
mViewPager.setAdapter(new PageAdapterHelper(mViews));// 设置ViewPager的适配器
}
/**
* RadioGroup点击CheckedChanged监听
*/
public void onCheckedChanged(RadioGroup group, int checkedId) {
AnimationSet _AnimationSet = new AnimationSet(true);
TranslateAnimation _TranslateAnimation;
int dimen = 0, currentIndex = 0;
switch (checkedId) {
case R.id.btn_FocusNews:
dimen = R.dimen.rdo1;
currentIndex = 1;
break;
case R.id.btn_Entertainment:
dimen = R.dimen.rdo2;
currentIndex = 2;
break;
case R.id.btn_MilitaryScience:
dimen = R.dimen.rdo3;
currentIndex = 3;
break;
case R.id.btn_Sports:
dimen = R.dimen.rdo4;
currentIndex = 4;
break;
case R.id.btn_Technology:
dimen = R.dimen.rdo5;
currentIndex = 5;
break;
}
_TranslateAnimation = new TranslateAnimation(mCurrentCheckedRadioLeft,
getResources().getDimension(dimen), 0f, 0f);
_AnimationSet.addAnimation(_TranslateAnimation);
_AnimationSet.setFillBefore(false);
_AnimationSet.setFillAfter(true);
_AnimationSet.setDuration(100);
mImageView.startAnimation(_AnimationSet);// 开始上面蓝色横条图片的动画切换
mViewPager.setCurrentItem(currentIndex);// 让下方ViewPager跟随上面的HorizontalScrollView切换
AdapterNews(currentIndex);
mCurrentCheckedRadioLeft = getCurrentCheckedRadioLeft();// 更新当前蓝色横条距离左边的距离
mHorizontalScrollView.smoothScrollTo((int) mCurrentCheckedRadioLeft
- (int) getResources().getDimension(R.dimen.rdo2), 0);
}
/**
* 获得当前被选中的RadioButton距离左侧的距离
*/
private float getCurrentCheckedRadioLeft() {
// TODO Auto-generated method stub
if (rbFocusNews.isChecked()) {
return getResources().getDimension(R.dimen.rdo1);
} else if (rbEntertainment.isChecked()) {
return getResources().getDimension(R.dimen.rdo2);
} else if (rbMilitaryScience.isChecked()) {
return getResources().getDimension(R.dimen.rdo3);
} else if (rbSports.isChecked()) {
return getResources().getDimension(R.dimen.rdo4);
} else if (rbTechnology.isChecked()) {
return getResources().getDimension(R.dimen.rdo5);
}
return 0f;
}
private void iniListener() {
// TODO Auto-generated method stub
mRadioGroup.setOnCheckedChangeListener(this);
mViewPager.setOnPageChangeListener(new MyPagerOnPageChangeListener());
}
private void iniController() {
// TODO Auto-generated method stub
mRadioGroup = (RadioGroup) findViewById(R.id.radioGroup);
rbFocusNews = (RadioButton) findViewById(R.id.btn_FocusNews);
rbEntertainment = (RadioButton) findViewById(R.id.btn_Entertainment);
rbMilitaryScience = (RadioButton) findViewById(R.id.btn_MilitaryScience);
rbSports = (RadioButton) findViewById(R.id.btn_Sports);
rbTechnology = (RadioButton) findViewById(R.id.btn_Technology);
mImageView = (ImageView) findViewById(R.id.img1);
mHorizontalScrollView = (HorizontalScrollView) findViewById(R.id.horizontalScrollView);
mViewPager = (ViewPager) findViewById(R.id.pager);
}
/**
* ViewPager的PageChangeListener(页面改变的监听器)
*/
private class MyPagerOnPageChangeListener implements OnPageChangeListener {
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
/**
* 滑动ViewPager的时候,让上方的HorizontalScrollView自动切换
*/
public void onPageSelected(int position) {
// TODO Auto-generated method stub
if (position == 0 || position == 1) {
rbFocusNews.performClick();
} else if (position == 2) {
rbEntertainment.performClick();
} else if (position == 3) {
rbMilitaryScience.performClick();
} else if (position == 4) {
rbSports.performClick();
} else if (position == 5) {
rbTechnology.performClick();
}
}
}
// 填充内容
private void AdapterNews(int type) {
list = (ListView) mViews.get(type).findViewById(R.id.lstNews);
listItems = new ArrayList<HashMap<String, Object>>();
String title = "", content = "";
switch (type) {
case 1:
title = "新闻头条";
content = "新闻内容:用事实说话,聚焦新闻客户端。";
break;
case 2:
title = "娱乐新闻";
content = "新闻内容:看娱乐新闻,爆娱乐猛料,聚焦新闻客户端。";
break;
case 3:
title = "军事新闻";
content = "新闻内容:看军事新闻,保家卫国,聚焦新闻客户端。";
break;
case 4:
title = "体育新闻";
content = "新闻内容:聚焦体育新闻,刘翔又献丑了,聚焦新闻客户端。";
break;
case 5:
title = "科技新闻";
content = "新闻内容:聚焦科技大事件,乔布斯复活,聚焦新闻客户端。新闻内容:聚焦科技大事件,乔布斯复活,聚焦新闻客户端。新闻内容:聚焦科技大事件,乔布斯复活,聚焦新闻客户端。";
break;
}
for (int i = 0; i < 15; i++) {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("Image", R.drawable.ic_launcher);
map.put("Title", title + i);
map.put("Content", content + i);
map.put("Comment", (1000 + i) + "评");
listItems.add(map);
}
listAdapter = new SimpleAdapter(this, listItems, R.layout.newsitem,
new String[] { "Image", "Title", "Content", "Comment" },
new int[] { R.id.n_image, R.id.n_title, R.id.n_content,
R.id.n_comment });
if (li
评论11
最新资源