58,454
社区成员
发帖
与我相关
我的任务
分享
public class BActivity extends ActivityGroup{
private ViewPager viewPager;//页卡内容
private ImageView imageView;// 动画图片
private Button button3,button4,button5,button6;
private List<View> views;// Tab页面列表
private int offset = 0;// 动画图片偏移量
private int currIndex = 0;// 当前页卡编号
private int bmpW;// 动画图片宽度
private View view1,view2,view3,view4;//各个页卡
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bmain);
InitImageView();
InitButtonView();
InitViewPager();
}
private void InitViewPager() {
viewPager=(ViewPager) findViewById(R.id.Bviewpager);
try{
view1 = getLocalActivityManager().startActivity("MainActivity",
new Intent(this, Item_java.class)).getDecorView(); //这个地方,try的时候无法通过。就在这里跳到catch了。
view2 = getLocalActivityManager().startActivity("MainActivity",
new Intent(this, Item_dotnet.class)).getDecorView();
view3 = getLocalActivityManager().startActivity("MainActivity",
new Intent(this, Item_insertapp.class)).getDecorView();
view4 = getLocalActivityManager().startActivity("MainActivity",
new Intent(this, Item_netmanagement.class)).getDecorView();
views=new ArrayList<View>();
views.add(view1);
views.add(view2);
views.add(view3);
views.add(view4);
viewPager.setAdapter(new MyViewPagerAdapter(views));
viewPager.setCurrentItem(0);
viewPager.setOnPageChangeListener(new MyOnPageChangeListener());
}
catch (Exception e) {
// TODO: handle exception
int xx=1;
}
}
/**
* 初始化头标
*/
private void InitButtonView() {
button3 = (Button) findViewById(R.id.btn_java);
button4 = (Button) findViewById(R.id.btn_dotnet);
button5 = (Button) findViewById(R.id.btn_insertapp);
button6 = (Button) findViewById(R.id.btn_netmanagement);
button3.setOnClickListener(new MyOnClickListener(0));
button4.setOnClickListener(new MyOnClickListener(1));
button5.setOnClickListener(new MyOnClickListener(2));
button6.setOnClickListener(new MyOnClickListener(3));
}
/**
2 * 初始化动画,这个就是页卡滑动时,下面的横线也滑动的效果,在这里需要计算一些数据
3 */
private void InitImageView() {
imageView= (ImageView) findViewById(R.id.Bcursor);
bmpW = BitmapFactory.decodeResource(getResources(), R.drawable.a).getWidth();// 获取图片宽度
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenW = dm.widthPixels;// 获取分辨率宽度
offset = (screenW /4 - bmpW) / 2;// 计算偏移量
Matrix matrix = new Matrix();
matrix.postTranslate(offset, 0);
imageView.setImageMatrix(matrix);// 设置动画初始位置
}
/**
*
* 头标点击监听 3 */
private class MyOnClickListener implements OnClickListener{
private int index=0;
public MyOnClickListener(int i){
index=i;
}
public void onClick(View v) {
viewPager.setCurrentItem(index);
}
}
public class MyViewPagerAdapter extends PagerAdapter{
private List<View> mListViews;
public MyViewPagerAdapter(List<View> mListViews) {
this.mListViews = mListViews;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(mListViews.get(position));
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(mListViews.get(position), 0);
return mListViews.get(position);
}
@Override
public int getCount() {
return mListViews.size();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0==arg1;
}
}
public class MyOnPageChangeListener implements OnPageChangeListener{
int one = offset * 2 + bmpW;// 页卡1 -> 页卡2 偏移量
int two = one * 2;// 页卡1 -> 页卡3 偏移量
int three = one * 3;// 页卡1 -> 页卡4偏移量
public void onPageSelected(int arg0) {
Animation animation = new TranslateAnimation(one*currIndex, one*arg0, 0, 0);
currIndex = arg0;
animation.setFillAfter(true);// True:图片停在动画结束位置
animation.setDuration(300);
imageView.startAnimation(animation);
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
}
}