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>
最后运行的效果图如下所示:
相关文章推荐
- 【FastDev4Android框架开发】Android 数据缓存器ACache的详解和使用(四)
- android文件上传
- iOS 将16数据转换成2进制字符串
- iOS 将二进制数据转换成十六进制字符串
- Android Handler之使用小结
- iOS 16进制转成汉字
- Swift 学习笔记(三)删除 Main.storyboard 和 LaunchScreen.storyboard
- webview简单加载页面
- Android后退事件的处理
- iOS: 通过addChildViewController实现 Segment 下的 View 的切换
- [置顶] android webview 底层实现的逻辑
- android webview 底层实现的逻辑
- android webview 底层实现的逻辑
- android webview 底层实现的逻辑
- android webview 底层实现的逻辑
- android webview 底层实现的逻辑
- cocos-js 跨域显示图片
- 【Cocos Shader】Shader Animation 跳动的心
- Android开发:shape和selector和layer-list的(详细说明)
- Android 学习笔记之Volley(七)实现Json数据加载和解析...