public class MainActivity extends FragmentActivity {
private ViewPager vp;
private RadioGroup rg;
private RadioButton rb1,rb2,rb3,rb4,rb5,rb6,rb7,rb8,rb9;
private RadioButton[] rbs=new RadioButton[9];
private HorizontalScrollView hs;
//缩放
private Animation anim;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//控件实例化
init();
//选中RadioButton的时候,ViewPager需要显示对应页
rg.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
//被选中的RadioButton
RadioButton rb=(RadioButton) findViewById(checkedId);
for(int i=0;i<rbs.length;i++){
if(rbs[i]==rb){
//应该ViewPager显示第i页
vp.setCurrentItem(i);
//把被选中的RadioButton的文本颜色--》红色
rbs[i].setTextColor(Color.parseColor("#ff0000"));
//让被选中的RadioButton执行缩放动画
rbs[i].startAnimation(anim);
}else{
rbs[i].setTextColor(Color.parseColor("#000000"));
//当对应的RadioButton不被选中的时候--》清除动画
rbs[i].clearAnimation();
}
}
}
});
//给ViewPager设置Adapter
vp.setAdapter(new VPAdapter(getSupportFragmentManager()));
//给ViewPager添加翻页监听
vp.setOnPageChangeListener(new OnPageChangeListener() {
//页面被选中---》当前显示
@Override
public void onPageSelected(int position) {
rbs[position].setChecked(true);
int left = rbs[position].getLeft();
int right = rbs[position].getRight();
int width=getWindowManager().getDefaultDisplay().getWidth();
hs.scrollTo((left-width/2)+(right-left)/2, 0);
}
//滑动过程中调用方法:参数1:位置值,要切换的两个page中左边的page的position
//参数2:偏移量0-1,要切换的两个page中左边的page的偏移量
//参数3:偏移量像素值,要切换的两个page中左边的page的偏移量
@Override
public void onPageScrolled(int position, float arg1, int arg2) {
// System.out.println("position="+position+",offset="+arg1+",offsetpx="+arg2);
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
@Override
protected void onResume() {
super.onResume();
//开启动画
rb1.startAnimation(anim);
}
/**控件实例化*/
private void init() {
hs=(HorizontalScrollView) findViewById(R.id.hs);
vp=(ViewPager) findViewById(R.id.vp);
rg=(RadioGroup) findViewById(R.id.rg);
anim=AnimationUtils.loadAnimation(MainActivity.this, R.anim.scale);
rb1=(RadioButton) findViewById(R.id.rb1);
//设置rb1默认选中
rb1.setTextColor(Color.RED);
rb2=(RadioButton) findViewById(R.id.rb2);
rb3=(RadioButton) findViewById(R.id.rb3);
rb4=(RadioButton) findViewById(R.id.rb4);
rb5=(RadioButton) findViewById(R.id.rb5);
rb6=(RadioButton) findViewById(R.id.rb6);
rb7=(RadioButton) findViewById(R.id.rb7);
rb8=(RadioButton) findViewById(R.id.rb8);
rb9=(RadioButton) findViewById(R.id.rb9);
rbs[0]=rb1;
rbs[1]=rb2;
rbs[2]=rb3;
rbs[3]=rb4;
rbs[4]=rb5;
rbs[5]=rb6;
rbs[6]=rb7;
rbs[7]=rb8;
rbs[8]=rb9;
}
//ViewPager的adapter
class VPAdapter extends FragmentPagerAdapter{
public VPAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return FragmentPage.getInstance(position);
}
@Override
public int getCount() {
return 9;
}
}
}
package com.example.day26demo07tablinevp.fragments;
import com.example.day26demo08tabs.R;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
public class FragmentPage extends Fragment{
private static int[] imgs={R.drawable.p1,R.drawable.p2,R.drawable.p3,R.drawable.p4,R.drawable.p5,R.drawable.p6,R.drawable.p7,R.drawable.p8,R.drawable.p9};
public static FragmentPage getInstance(int position){
FragmentPage fragment = new FragmentPage();
Bundle bundle = new Bundle();
bundle.putInt("position", position);
//传递参数
fragment.setArguments(bundle);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ImageView imgv = new ImageView(getActivity());
if(getArguments()!=null){
//设置显示的图片
imgv.setBackgroundResource(imgs[getArguments().getInt("position")]);
}else{
imgv.setBackgroundResource(R.drawable.ic_launcher);
}
return imgv;
}
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<HorizontalScrollView
android:id="@+id/hs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbars="none" >
<RadioGroup
android:id="@+id/rg"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/rb1"
style="@style/rb"
android:text="头条" />
<RadioButton
android:id="@+id/rb2"
style="@style/rb"
android:text="今天" />
<RadioButton
android:id="@+id/rb3"
style="@style/rb"
android:text="明天" />
<RadioButton
android:id="@+id/rb4"
style="@style/rb"
android:text="明天1" />
<RadioButton
android:id="@+id/rb5"
style="@style/rb"
android:text="明天2" />
<RadioButton
android:id="@+id/rb6"
style="@style/rb"
android:text="明天3" />
<RadioButton
android:id="@+id/rb7"
style="@style/rb"
android:text="明天4" />
<RadioButton
android:id="@+id/rb8"
style="@style/rb"
android:text="明天5" />
<RadioButton
android:id="@+id/rb9"
style="@style/rb"
android:text="明天6" />
</RadioGroup>
</HorizontalScrollView>
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="20dp" >
</android.support.v4.view.ViewPager>
</LinearLayout>