java导航模版_android 导航页模板

该博客介绍了如何在Android应用中实现引导页和底部导航指示器。通过创建ImageView列表,设置ViewPager适配器,监听页面滑动事件,并初始化底部小点来实现这一功能。示例代码展示了如何设置图片资源,绑定点击事件以及切换选中状态。
摘要由CSDN通过智能技术生成

packagecom.example.viewpager;importjava.util.ArrayList;importjava.util.List;importandroid.os.Bundle;importandroid.R.integer;importandroid.app.Activity;importandroid.support.v4.view.ViewPager;importandroid.support.v4.view.ViewPager.OnPageChangeListener;importandroid.view.Menu;importandroid.view.View;importandroid.view.Window;importandroid.view.View.OnClickListener;importandroid.widget.ImageView;importandroid.widget.LinearLayout;public class MainActivity extends Activity implementsOnClickListener, OnPageChangeListener{privateViewPager vp;privateViewPagerAdapter vpAdapter;private Listviews;//引导图片资源

private static final int[] pics ={ R.drawable.ww,

R.drawable.ww1, R.drawable.ww2,

R.drawable.ww3 };//底部小店图片

privateImageView[] dots;//记录当前选中位置

private intcurrentIndex;

@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.activity_main);

views= new ArrayList();

LinearLayout.LayoutParams mParams= newLinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,

LinearLayout.LayoutParams.WRAP_CONTENT);//初始化引导图片列表

for (int i = 0; i < pics.length; i++) {

ImageView iv= new ImageView(this);

iv.setLayoutParams(mParams);

iv.setImageResource(pics[i]);

views.add(iv);

}

vp=(ViewPager)findViewById(R.id.viewpager);//初始化Adapter

vpAdapter= newViewPagerAdapter(views);

vp.setAdapter(vpAdapter);//绑定回调

vp.setOnPageChangeListener(this);//初始化底部小点

initDots();

}private voidinitDots() {

LinearLayout ll=(LinearLayout)findViewById(R.id.ll);

dots= newImageView[pics.length];//循环取得小点图片

for (int i = 0; i < pics.length; i++) {

dots[i]=(ImageView)ll.getChildAt(i);

dots[i].setEnabled(true);//都设为灰色

dots[i].setOnClickListener(this);

dots[i].setTag(i);//设置位置tag,方便取出与当前位置对应

}

currentIndex=0;

dots[currentIndex].setEnabled(false);//设置为白色,即选中状态

}/***设置当前的引导页*/

private void setCurView(intposition)

{if (position < 0 || position >=pics.length) {return;

}

vp.setCurrentItem(position);

}/***这只当前引导小点的选中*/

private void setCurDot(intpositon)

{if (positon < 0 || positon > pics.length - 1 || currentIndex ==positon) {return;

}

dots[positon].setEnabled(false);

dots[currentIndex].setEnabled(true);

currentIndex=positon;

}//当滑动状态改变时调用

@Overridepublic void onPageScrollStateChanged(intarg0) {

}//当当前页面被滑动时调用

@Overridepublic void onPageScrolled(int arg0, float arg1, intarg2) {

}//当新的页面被选中时调用

@Overridepublic void onPageSelected(intarg0) {//设置底部小点选中状态

setCurDot(arg0);

}

@Overridepublic voidonClick(View v) {int position =(Integer)v.getTag();

setCurView(position);

setCurDot(position);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值