您的位置:首页 > 移动开发

Android APP引导页制作

2015-10-25 20:34 274 查看
Android的APP应用中最常用的APP启动引导页,常见的4种引导项目方式:splash,viewpage,viewflipper,scrollview。本文就其中一种方式(viewpager)来对app引导页进行制作。

接下来就要对布局的资源进行配置需要适配器,适配器的配置代码如下所示:

public class MyViewPagerAdapter extends PagerAdapter {
private List<LinearLayout> linearLayoutList;

public MyViewPagerAdapter(List<LinearLayout> linearLayoutList) {
this.linearLayoutList = linearLayoutList;
}

@Override
public int getCount() {
return linearLayoutList.size();
}

@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(linearLayoutList.get(position));
return linearLayoutList.get(position);
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(linearLayoutList.get(position));
}
}
然后对MainActivity的代码进行编写,代码里都有具体的步骤的注释,我就不再写了。

public class MainActivity extends AppCompatActivity {

private ViewPager viewPager;
private ArrayList<LinearLayout> linearLayoutList;
private LinearLayout linearLayout;
private int currentIndex;
private MyViewPagerAdapter adapter;
private ArrayList<ImageView> imageViewList;
private int[] images={R.drawable.a,R.drawable.b,R.drawable.c};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化viewpager
initViewPager();
//初始化page
initPage();

adapter=new MyViewPagerAdapter(linearLayoutList);
viewPager.setAdapter(adapter);

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
/**
* 表示滑动当前页,但是还没有到达下一页
* @param position 表示当前页的位置
* @param positionOffset 表示滑动的位移量(偏移量),数值范围为[0,1)
* @param positionOffsetPixels 滑动的偏移量,用像素值来表示
*/
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

}

/**
* 表示选择的当前页
* @param position 当前页的位置
*/
@Override
public void onPageSelected(int position) {
imageViewList.get(currentIndex).setEnabled(false);
imageViewList.get(position).setEnabled(true);
currentIndex=position;
}

/**
* 当前页的滑动状态改变时回调的方法
* @param state 当前的状态
* SCROLL_STATE_DRAGGING 表示滑动状态
* SCROLL_STATE_IDLE 表示静止状态
* SCROLL_STATE_SETTLING 表示停止状态
*/
@Override
public void onPageScrollStateChanged(int state) {

}
});
//初始化布局
initLinearLayout();

}

private void initPage() {
linearLayoutList=new ArrayList<LinearLayout>();
for (int i = 0; i <3 ; i++) {
LinearLayout linearLayout=new LinearLayout(this);
linearLayout.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
linearLayout.setBackgroundResource(images[i]);
linearLayoutList.add(linearLayout);
}
}

private void initLinearLayout() {
linearLayout=(LinearLayout)findViewById(R.id.linearlayout);
imageViewList=new ArrayList<ImageView>();
for (int i=0;i<linearLayoutList.size();i++){
ImageView imageView= (ImageView) linearLayout.getChildAt(i);
imageView.setEnabled(false);
imageViewList.add(imageView);
}
imageViewList.get(0).setEnabled(true);
currentIndex=0;
}

private void initViewPager() {
viewPager=(ViewPager)findViewById(R.id.viewpager);
}

}</span>

最后运行的效果图如下所示:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: