仿微信启动界面
来源:互联网 发布:麒麟linux操作系统下载 编辑:程序博客网 时间:2024/06/05 07:47
一、效果图
开始界面:
引导界面:
二、实现
首先判断是否是第一次启动,是第一次启动启动引导界面,不是直接进入登录界面
SharedPreferences preferences = getSharedPreferences( SHAREDPREFERENCES_NAME, MODE_PRIVATE); isFirstIn = preferences.getBoolean("isFirstIn", true); private void GoLogon() { Intent intent = new Intent(BeginActivity.this, LogonActivity.class); startActivity(intent); BeginActivity.this.finish(); } private void GoGuide() { Intent intent = new Intent(BeginActivity.this, GuideActivity.class); startActivity(intent); BeginActivity.this.finish(); }
引导界面使用了ViewPager去实现,使用方法跟ListView类似,需提供一个PagerAdapter适配器,实现比较简单,重载几个方法就可以了
public class ViewPagerAdapter extends PagerAdapter {private List<View> views; public ViewPagerAdapter(List<View> views, Activity activity) { this.views = views; } @Override public void destroyItem(View arg0, int arg1, Object arg2) { ((ViewPager) arg0).removeView(views.get(arg1)); } @Overridepublic int getCount() { // TODO Auto-generated method stub if (views != null) { return views.size(); } return 0; }@Overridepublic boolean isViewFromObject(View arg0, Object arg1) { // TODO Auto-generated method stub return (arg0 == arg1); }@Overridepublic Object instantiateItem(View container, int position) { ((ViewPager) container).addView(views.get(position)); return views.get(position);}
下面是使用
private void initViews() { LayoutInflater inflater = LayoutInflater.from(this); views = new ArrayList<View>(); // 初始化引导图片列表 views.add(inflater.inflate(R.layout.guidepage01, null)); views.add(inflater.inflate(R.layout.guidepage02, null)); views.add(inflater.inflate(R.layout.guidepage03, null)); views.add(inflater.inflate(R.layout.guidepage04, null)); views.add(inflater.inflate(R.layout.guidepage05, null)); views.add(inflater.inflate(R.layout.guidepage06, null)); // 初始化Adapter vpAdapter = new ViewPagerAdapter(views, this); vp = (ViewPager) findViewById(R.id.guidePagers); vp.setAdapter(vpAdapter); // 绑定回调 vp.setOnPageChangeListener(new NavigationPageChangeListener()); }
白色小圆点是使用图片的方式实现的
private void initDots() { imageViews = new ImageView[views.size()]; viewPoints = (ViewGroup)findViewById(R.id.viewPoints); for (int i = 0; i < views.size(); i++) {imageView = new ImageView(GuideActivity.this);imageView.setLayoutParams(new LayoutParams(20, 20));imageView.setPadding(5, 0, 5, 0);imageViews[i] = imageView;if (i == 0)imageViews[i].setImageDrawable(getResources().getDrawable(R.drawable.page_indicator_focused));else imageViews[i].setImageDrawable(getResources().getDrawable(R.drawable.page_indicator_unfocused));viewPoints.addView(imageViews[i]); }}
界面滑动时更新白色圆点
class NavigationPageChangeListener implements OnPageChangeListener {@Overridepublic void onPageScrollStateChanged(int arg0) {}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {}@Overridepublic void onPageSelected(int position) {for (int i = 0; i < imageViews.length; i++) {imageViews[i].setImageDrawable(getResources().getDrawable(R.drawable.page_indicator_focused));if (position != i)imageViews[i].setImageDrawable(getResources().getDrawable(R.drawable.page_indicator_unfocused));}}}
关键代码就这些,源码地址:http://download.csdn.net/detail/m370809968/6389011
- 仿微信启动界面
- 启动界面
- 启动界面
- 启动界面
- 仿微信首次启动滑动界面效果
- 仿微信首次启动滑动界面效果
- 仿微信首次启动滑动界面效果
- 如何制作启动界面
- 制作启动界面
- 启动Hsql管理界面
- 定制android启动界面
- 定制android启动界面
- 定制android启动界面
- ubuntu 启动字符界面
- qt做启动界面
- Qt做启动界面
- 定制android启动界面
- linux启动界面
- 基于XML数据库的学生信息管理系统的设计与实现
- 用Spring Data JPA 基于内存存储pojo的简单案例
- IOS仿网易新闻客户端左右侧栏
- 【Cocos2d游戏开发之一】搭建cocos2d游戏引擎环境
- mysql常用语句
- 仿微信启动界面
- 6句话,绝对不能对上司说!
- iOS 网络判断
- 1、java虚拟机方法区内存模型
- Linux软连接和硬链接———最精辟的分析
- 面向 对象的三大特性
- Oracle 11g 学习笔记 Using Baseline
- Quartz的配置和使用网站
- [剑指offer][面试题18]树的子结构