新手引导界面ShowcastView

Android程序员面试宝典

自定义控件

  • 一分钟实现新手引导页
  • 一分钟实现轮播图
  • 一分钟实现GridView拖拽
  • 一分钟实现底部导航栏
  • 一分钟实现底部FragmentTabhost
  • 一分钟实现多张图片选择
  • 一分钟实现仿美拍直播的点赞动画
  • 一分钟实现高仿今日头条视频列表
  • 一分钟实现购物车加减控件
  • 一分钟实现省市县三级联动
  • 一分钟实现二维码生成和扫描
  • 一分钟实现沉浸式状态栏
  • 一分钟实现图片裁剪
  • 一分钟实现视频弹幕
  • 一分钟实现图片缩放
  • 一分钟实现旋转选择器
  • 一分钟实现ofo小黄车的引导界面
  • 一分钟实现自定义ImageView外貌
  • 一分钟实现向左拖拽跳转详情页
  • 一分钟实现QQ首页动画特效
  • 一分钟实现ViewPager上下滑动

联网

  • 一分钟学会Retrofit并且进行实战
  • 一分钟实现OkHttp3

工具

  • 一分钟实现RecyclerView
  • 一分钟实现H5和Android通信
  • 一分钟实现pinyin4j
  • 一分钟实现分析内存泄漏

数据库

  • 一分钟实现LitePal数据库
  • 一分钟实现ormlite数据库
  • 一分钟实现GreenDao数据库

源码分析相关面试题

  • Volley源码分析
  • 注解框架实现原理
  • okhttp3.0源码分析
  • onSaveInstanceState源码分析
  • 静默安装和源码编译

Activity相关面试题

  • 保存Activity的状态
  • 深刻剖析activity启动模式(一)
  • 深刻剖析activity启动模式(二)
  • 深刻剖析activity启动模式(三)
  • Activity Task和Process之间的关系
  • 源码分析service开启Activity抛异常?activity不会抛异常
  • Activity优雅退出
  • onCreate源码分析

Service相关面试题

  • IntentService源码分析
  • Service是否在main thread中执行, service里面是否能执行耗时的操作?
  • Service不死之身

与XMPP相关面试题

  • XMPP协议优缺点
  • 极光消息推送原理

与性能优化相关面试题

  • 内存泄漏和内存溢出区别
  • UI优化和线程池实现原理
  • 代码优化
  • 内存性能分析
  • 内存泄漏检测
  • App启动优化
  • 与IPC机制相关面试题

与登录相关面试题

  • oauth认证协议原理
  • token产生的意义
  • 微信扫一扫实现原理

与开发相关面试题

  • 迭代开发的时候如何向前兼容新旧接口
  • 手把手教你如何解决as jar包冲突
  • context的原理分析
  • 解决ViewPager.setCurrentItem中间很多页面切换方案
  • 字体适配
  • 软键盘适配
  • 机型适配,例如三星、小米、华为、魅族等

与人事相关面试题

  • 人事面试宝典

先看最终实现的效果 ,当我们第一次使用某些软件的时候,也会出现一个半透明的提示界面,比如知乎在第一次查看的时候,会告诉你右划返回,当你以后再进行相同的操作时,这个半透明的提示图片就不会出现了。

新手引导界面ShowcastView_第1张图片
新手引导界面ShowcastView_第2张图片

使用步骤

1. 在Module的build.gradle添加依赖

compile 'com.github.amlcurran.showcaseview:library:5.4.3'

2. 假设在Activity中有一个按钮,你想突出它(如上面三张图片),在Activity的onCreate()方法中添加如下代码:

 Button get_src_bn = (Button)findViewById(R.id.get_source_bn);

 new ShowcaseView.Builder(this)
         .setTarget(new ViewTarget(get_src_bn))//设置button为突出的目标
         .setContentTitle("我的微信公众号")
         .setContentText("Android干货程序员")
         .hideOnTouchOutside()
         .build();

这就是使用ShowcaseView的默认方法,很简单吧,你想突出什么,就以什么为Target。

3. 在Activity中,你不想突出任何一个按钮或者View,你只是想像第一张图片一样显示一个半透明图片告诉用户某种手势操作,那么你的代码应该是这样的:

 ShowcaseView showcaseView = new ShowcaseView.Builder(this)
                             .setStyle(R.style.Custom_semi_transparent_demo)
                             .hideOnTouchOutside()
                             .build();

你没有target任何一个view,而是使用了setStyle来手动的设置一个背景主题,那么这个背景主题就是关键了,Custom_semi_transparent_demo的代码如下:

 

可以看到这个背景主题是继承了ShowcaseView.Light主题,然后修改了背景颜色、字体颜色和按钮文字。设置完正确的style之后,还需要马上设置背景图片,这个例子中的背景图片是R.drawable.swipe_back_en,图片必须是png格式的透明图片。

4. 在Activity中,想实现用户注册引导界面,如下图,代码如下:

新手引导界面ShowcastView_第3张图片



    
    
    
 /**
    * 简单的用户注册引导
    */
   public  void registerGuide(){
       this.register = (Button) findViewById(R.id.register);
       this.password = (EditText) findViewById(R.id.password);
       this.username = (EditText) findViewById(R.id.username);
       usernameTarget = new ViewTarget(username);
       passwordTarget = new ViewTarget(password);
       registerTarget = new ViewTarget(register);
       final Button usernameButton=new Button(this);
       usernameButton.setText("下一步");
       final Button passwordButton=new Button(this);
       passwordButton.setText("下一步");
       final Button registerButton=new Button(this);
       registerButton.setText("明白了");
       usernameShowcaseView=new ShowcaseView.Builder(this)
               .withHoloShowcase()
               .setTarget(usernameTarget)
               .setContentTitle("第一步")
               .setContentText("请输入用户名")
               .replaceEndButton(usernameButton)
               .build();
       passwordShowcaseView=new ShowcaseView.Builder(MainActivity.this)
               .withHoloShowcase()
               .setTarget(passwordTarget)
               .setContentTitle("第二步")
               .setContentText("请输入密码")
               .replaceEndButton(passwordButton)
               .build();
       passwordShowcaseView.hide();
       registerShowcaseView=new ShowcaseView.Builder(MainActivity.this)
               .withHoloShowcase()
               .setTarget(registerTarget)
               .setContentTitle("第三步")
               .setContentText("请点击注册按钮")
               .replaceEndButton(registerButton)
               .build();
       registerShowcaseView.hide();
       usernameButton.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               usernameShowcaseView.hide();
               passwordShowcaseView.show();
           }
       });
       passwordButton.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               passwordShowcaseView.hide();
               registerShowcaseView.show();
           }
       });
       registerButton.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               registerShowcaseView.hide();
           }
       });
   }
  • 欢迎关注微信公众号、长期为您推荐优秀博文、开源项目、视频

  • 微信公众号名称:Android干货程序员

  • 新手引导界面ShowcastView_第4张图片
  • 项目总贴:https://github.com/open-android/Android

你可能感兴趣的:(新手引导界面ShowcastView)