在用户正式使用APP之前,通常会做一个使用指南,提示用户在应该怎么操作或者增加了什么新功能,请看QQ通讯录的使用指南:
用手指滑动切换图片
下方的点将改变颜色
暗示当前的图片在整组图片的位置.
我的解决办法:往ViewFlipper组件里面填充图片,在切换图片的时候,记录当前位置,默认从0开始,切换到下一张就加1,到上一张就减1,改变对应位置的ImageView的样式
首先准备5张已经制作好的帮助图,另外还有2张圆点图,一张是橙色,表示选中,一张是灰色,表示未被选中.
以下部分关键代码,配有注释:
布局文件:
View Code
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android%22
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center" >
<ViewFlipper
android:id="@+id/viewFlipper"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:flipInterval="1000"
android:gravity="center"
android:persistentDrawingCache="animation" >
</ViewFlipper>
<LinearLayout
android:id="@+id/layout_point"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginBottom="110dp"
android:gravity="center"
android:orientation="horizontal" >
</LinearLayout>
</FrameLayout>
这些图片可能在发布新版本后要更换,而且数量也可能会改变,于是采取动态的创建ImageView的办法,JAVA代码:
自定义的圆点ImageView:
View Code
class PointImage extends ImageView {
LinearLayout.LayoutParams margins = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
public PointImage(Context context) {
super(context);
margins.setMargins(20, 0, 0, 0);
setLayoutParams(margins);
normal();
}
public void choose() {
setBackgroundResource(R.drawable.app_tips_point_choose);
}
public void normal() {
setBackgroundResource(R.drawable.app_tips_point_normal);
}
}
自定义的指南图ImageView:
View Code
class GuideImage extends ImageView {
public GuideImage(Context context, Integer resId) {
super(context);
setImageResource(resId);
setScaleType(ScaleType.FIT_XY);
}
}
初始化activity的视图信息
View Code
private void initView() {
mGestureDetector = new GestureDetector(this);
viewFlipper = (ViewFlipper) findViewById(R.id.viewFlipper);
layout_point = (LinearLayout) findViewById(R.id.layout_point);
context = getApplicationContext();
for (int i = 0; i < guideId.length; i++) {
PointImage pointImage = new PointImage(context);
GuideImage guideImage = new GuideImage(context, guideId[i]);
if (i == 0) {
pointImage.choose();
}
layout_point.addView(pointImage);
viewFlipper.addView(guideImage);
}
}
实现OnGestureListener接口里面的onFling方法,执行滑动手势事件
View Code
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
Log.i("kcl", "counter=" + counter);
if (e1.getX() - e2.getX() > 80) {
viewFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in));
viewFlipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out));
if (counter < guideId.length-1) {
viewFlipper.showNext();
counter++; //记录位置
setPointChoose();
} else {
startActivity(new Intent(getApplication(), MainNavTab.class));
this.finish();
}
return true;
} else if (e1.getX() - e2.getX() < -80) {
viewFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_in));
viewFlipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_out));
if (counter > 0) {
viewFlipper.showPrevious();
counter--;
}
setPointChoose();
return true;
}
return false;
}
分享到:
相关推荐
在本教程中,我们将深入探讨如何使用Android Studio开发一个指南针应用。Android Studio是Google官方推出的集成开发环境(IDE),专为Android应用开发设计。它提供了丰富的工具集,包括代码编辑器、调试器以及构建...
【Android App设计开发 PPT】课程内容概览 在Android移动开发领域,Android Studio作为官方推荐的集成开发环境,已经成为开发者的主要工具。本PPT课程是2017年更新的最新教学资源,旨在帮助学习者全面掌握Android...
微博Android SDK使用指南是指在Android平台上使用微博SDK进行开发的指导手册。本指南将详细介绍如何申请App Key、注册应用程序的包名和签名、集成SDK、参数配置、初始化SDK、使用微博授权等步骤。 1. 申请App Key ...
在Android开发中,指南针应用是一种常见的功能,它利用设备内置的传感器来指示地球的磁场北。...开发者可以通过修改和学习这个项目,深入了解Android传感器的使用和数据处理技巧,提升自己的Android应用开发能力。
基于Android的指南针作业App开发(源码+说明+演示视频).rar 基于Android的指南针作业App开发(源码+说明+演示视频).rar 基于Android的指南针作业App开发(源码+说明+演示视频).rar 基于Android的指南针作业App开发(源码...
接下来,我们详细解读一下Android Gradle权威指南高清版中可能包含的知识点,这些知识点是为Android开发人员量身定制,从基础到进阶,覆盖了Gradle在Android项目中的各个方面。 1. Gradle基础概念:介绍Gradle的...
本指南将详细介绍如何使用Lazarus来开发Android应用程序,特别关注2017年更新版的新特性与优化。 在2017年的版本中,Lazarus为Android开发带来了一系列改进,包括更好的兼容性、优化的性能以及更多的组件支持。首先...
在这个项目中,开发者使用Java或Kotlin编程语言编写APP,利用Android SDK(软件开发工具包)进行开发,遵循Android设计指南构建用户界面。 2. **Android Studio**:Android Studio是Google官方的集成开发环境(IDE...
下面将详细探讨这款APP的主要特点和涉及的Android开发知识点。 首先,CRUD功能是任何数据管理应用的核心。在Android开发中,这通常涉及到SQLite数据库的使用。SQLite是一种轻量级的关系型数据库,适用于移动设备,...
《Android Studio开发实战:从零基础到App上线》是一本旨在帮助初学者全面掌握Android应用开发的实战指南。书中的内容涵盖了从环境搭建、基本概念理解到实际项目开发的全过程,旨在让读者能够从无到有,独立完成一个...
【Android指南针App源码解析】 本指南针App是一款基于Android平台的应用,它不仅提供了基本的指南针功能,还能够显示海拔高度和大气压力信息,为户外活动爱好者提供了更为全面的导航体验。开发者使用了IntelliJ ...
通过以上技术点,我们可以看到这个相册管理app是一个综合性的项目,涵盖了Android开发的多个重要方面。开发者不仅需要掌握基本的编程技能,还需要了解用户体验设计、数据库管理和网络通信等相关知识。对于学习...
通过学习和实践这个记事本APP的开发,开发者能够掌握Android应用的基本架构,理解如何与数据库交互,以及如何创建响应用户操作的界面。这是一个很好的起点,为进一步的Android开发打下坚实基础。随着技能的提升,...
综上所述,基于Android Studio开发答题APP涵盖了从UI设计、数据管理、用户交互到性能优化等多个方面,是一个综合性的Android开发实践。通过这个项目,开发者可以深入理解Android应用开发的全过程,提升自己的技能...
微博Android SDK使用指南_v11.11.11 微博Android SDK使用指南_v11.11.11是微博开放平台提供的一份详细的指南,旨在帮助开发者顺利地将微博SDK集成到自己的Android应用程序中。以下是根据该指南生成的相关知识点: ...
此外,应用还包含了运行文档,这可能是开发者提供的详细指南,涵盖了如何安装、启动和使用App的步骤。源代码的提供使学习者能够深入理解每个功能的实现细节,对初学者来说是一份宝贵的教育资源。 至于apk安装包和...
在Android开发中,遵循Material Design指南能帮助创建一致且吸引人的界面。开发者需要考虑按钮的布局、颜色搭配、字体选择以及触摸反馈等元素,确保用户能够自然地与应用交互。 最后,BaiduLocationDemo可能包含了...
标题"Android开发天气预报APP"意味着我们将构建一个能够显示实时天气信息的应用。这涉及到与天气API的交互,例如OpenWeatherMap或AccuWeather,这些API可以提供城市的温度、湿度、风速等信息。开发者需要学会如何...
【基于Android Studio开发的安卓通讯录管理App】是一款利用谷歌提供的Android Studio集成开发环境构建的应用程序,它专注于管理和操作用户的联系人数据。该应用涵盖了多种关键功能,包括新增联系人、编辑现有联系人...