android 应用---引导页
来源:互联网 发布:奉化房产信息网域名 编辑:程序博客网 时间:2024/05/21 11:15
目前市场上的应用有几个比较使用频繁的功能
(1)引导页:包括Welcome页面和Guide页面。
(2)TabHost的使用。
(3)侧边栏的使用。
(1)下拉ListView或者ScrollView刷新。
引导页
1.Welcome页面
这个应该是最简单的,常规想法是定义一个ImageView充满屏幕即可,但是要注意一个问题,当点击进入的时候会先闪一下黑屏或者白屏(这个得看定义的主题背景)。
解决方式是定义一个activity的style,里面包含窗口背景即为Welcome页面的背景图片,如下:
<style name="WelcomeActivtyTheme" parent="@style/AppTheme"> <item name="android:windowNoTitle">true</item> <item name="android:windowBackground">@drawable/welcome_bg</item> </style>
然后WelcomeActivity在manifast中引用即可。
<activity android:name="com.cartoon.WelcomeActivity" android:theme="@style/WelcomeActivtyTheme" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
2.Guide页面
这个也很简单,只需要使用ViewPager即可,这个不需要多说。我在使用ViewPager的时候自定义一个IndicatorContainer配合使用,移动到那个页面,指引到哪个点。
直接贴出IndicatorContainer的代码。
package com.common.view;import android.annotation.SuppressLint;import android.content.Context;import android.util.AttributeSet;import android.view.View;import android.widget.LinearLayout;public class IndicatorContainer extends LinearLayout {private OnIndicatorSelectedListener mIndicatorSelectedListener;public IndicatorContainer(Context context) {super(context);}public IndicatorContainer(Context context, AttributeSet attrs) {super(context, attrs);}@SuppressLint("NewApi")public IndicatorContainer(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);}private View.OnClickListener mChildOnClickListener = new OnClickListener() {@Overridepublic void onClick(View view) {setIndicatorSelected(view);notifyIndicatorSelected(view);}};@Overrideprotected void onFinishInflate() {super.onFinishInflate();int count = getChildCount();for (int i = 0; i < count; i++) {View child = getChildAt(i);child.setOnClickListener(mChildOnClickListener);}}public void setOnIndicatorSelectedListener(OnIndicatorSelectedListener l) {mIndicatorSelectedListener = l;}public void setIndicatorSelected(int position) {setIndicatorSelected(getChildAt(position));}private void setIndicatorSelected(View view) {int index = indexOfChild(view);int count = getChildCount();if (index >= 0 && index < count) {for (int i = 0; i < count; i++) {View child = getChildAt(i);child.setSelected(index == i);}}}private void notifyIndicatorSelected(View view) {int index = indexOfChild(view);int count = getChildCount();if (index >= 0 && index < count && mIndicatorSelectedListener != null) {mIndicatorSelectedListener.onIndicatorSelected(view, index);}}public void addIndicator(View view) {if (view != null) {view.setOnClickListener(mChildOnClickListener);addView(view);}}public interface OnIndicatorSelectedListener {public void onIndicatorSelected(View view, int position);}}
0 0
- android 应用---引导页
- android 引导页应用
- android统计应用启动次数,跳过引导页
- Androidの应用引导页SplashActivity的巧妙之处
- Android APP 引导页实现-第一次应用进入时加载
- Android复习之旅--ViewPager(应用引导页)
- Android 引导图层、引导页
- Android 滑动引导页
- Android ViewPager引导页
- Android 引导页详解
- Android ViewPager引导页
- Android引导页设计
- android 引导页
- android半透明引导页
- android引导页大图
- Android中引导页
- Android App引导页
- android图片引导页
- mvc中“/”应用程序中的服务器错误。 无法提供此类型的页
- 从bitbucket上clone代码时,遇到:error: Couldn't resolve proxy
- NOJ 1031 建筑群最长坡值 (线性dp)
- stringstream
- 父类的static变量和函数在派生类中依然可用
- android 应用---引导页
- Struts2注解错误There is no Action mapped for namespace [/].....
- n a^o7 ! (简单字符串处理)
- tableviewcell的一些基本知识点
- 如何在android style文件中使用自定义属性
- C#线程运用基础
- U盘安装Mac os
- Linux常用命令
- Fiddler2介绍