时间:2015-03-19 来源:

欢迎界面+引导进入经典案例【互联网】

看引导界面效果

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_checked="true" android:color="@android:color/black"></item> <item android:state_checked="false" android:color="@android:color/white"></item> </selector> point_normal.xml

activity_guide.xml

activity_welcome.xml

SPUtil.java

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="fill_parent" android:layout_height="fill_parent" > </android.support.v4.view.ViewPager> <Button android:id="@+id/btn_enterMain" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="100dp" android:background="@drawable/enter_main_button_selector_bg" android:text="开始体验" android:textColor="@drawable/enter_main_button_text_selector" android:visibility="gone" /> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="80dp" > <LinearLayout android:id="@+id/ll_point_group" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" > </LinearLayout> <View android:id="@+id/red_point" android:layout_width="10dp" android:layout_height="10dp" android:background="@drawable/point_red"/> </RelativeLayout> </RelativeLayout>针对引导界面还需要提供4个xml文件(进入体验button的按下效果切换web外包, 10);// 创建布局参数 // 除开第0个点,承接网页前端外包其他的都要距离左边有10个像素 if (i != 0) { params.leftMargin = 10; } point.setBackgroundResource(R.drawable.point_normal);// 添加背景图片 point.setLayoutParams(params);// 设置布局参数 ll_point_group.addView(point);// 添加指示点击 } // 设置适配器 viewpager.setAdapter(new viewpagerAdapter()); // 监听当onLayout方法执行的时候再去 red_point.getViewTreeObserver().addOnGlobalLayoutListener( new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { // 取消注册监听--因为孩子也会调用 red_point.getViewTreeObserver() .removeGlobalOnLayoutListener(this); // 两点间的间距 leftMax = ll_point_group.getChildAt(1).getLeft() - ll_point_group.getChildAt(0).getLeft(); } }); /** * 设置页面改变监听 */ viewpager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int position) { //只有第三种页面显示进入按钮 if (position == 2) { btn_enterMain.setVisibility(View.VISIBLE); } else { btn_enterMain.setVisibility(View.GONE); } } /* * 位置 屏幕上滑动的百分比 滑动的显示 */ @Override public void onPageScrolled(int position, MainActivity.class)); // 干掉自己 finish(); } }); } class viewpagerAdapter extends PagerAdapter { @Override public int getCount() { return imageViews.size(); } @Override public boolean isViewFromObject(View arg0, int position, int position) { ImageView imageView = imageViews.get(position); container.addView(imageView); return imageView; } } } 另外最后还有一个主界面测试用(布局文件没有东西)

package com.example.bjnews.util; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; public class SPUtil { // 构造器私有 private SPUtil() { } // 私有、静态实例 private static SPUtil instance = new SPUtil(); // 公共、静态方法获取实例 public static SPUtil getInstance(Context context) { if (sp == null) { sp = context.getSharedPreferences("atguigu", Object defValue) { Editor edit = sp.edit(); if (defValue instanceof Boolean) { edit.putBoolean(key, (String) defValue); } if (defValue instanceof Integer) { edit.putInt(key, String defValue) { return sp.getString(key, int defValue) { return sp.getInt(key, boolean defValue) { return sp.getBoolean(key, 360, 0.5f, 0.5f); rotateAnimation.setDuration(2000); rotateAnimation.setFillAfter(true); //缩放 ScaleAnimation scaleAnimation = new ScaleAnimation(0, 0, Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_SELF, 1.0f); alphaAnimation.setDuration(2000); alphaAnimation.setFillAfter(true); //添加动画 AnimationSet animationSet = new AnimationSet(false); animationSet.addAnimation(rotateAnimation); animationSet.addAnimation(scaleAnimation); animationSet.addAnimation(alphaAnimation); rl_root.startAnimation(animationSet); //动画监听事件 animationSet.setAnimationListener(new MyAnimation()); } class MyAnimation implements AnimationListener{ @Override public void onAnimationEnd(Animation animation) { //是否已经进入过主界面(默认没有进入过) boolean isEnterMain = SPUtil.getInstance(WelcomeActivity.this).getboolean("isEnterMain", "isEnterMain"+isEnterMain); if (isEnterMain) { //进入过web外包,MainActivity.class )); Log.e("TAG", "Main"); }else { //没进入过,网页切图制作计入向导界面 Log.e("TAG",GuideActivity.class )); } finish(); } @Override public void onAnimationRepeat(Animation animation) { } @Override public void onAnimationStart(Animation animation) { } } } 另外为上对象提供一个工具类(用来保存是否是第一次进入应用)

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_checked="true" android:drawable="@drawable/button_red_pressed"></item> <item android:state_checked="false" android:drawable="@drawable/button_red_normal"></item> </selector> enter_main_button_text_selector.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/rl_root" android:background="@drawable/splash_bg_newyear" > <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/splash_horse_newyear" /> </RelativeLayout>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > </RelativeLayout> MainActivity.java

package com.example.bjnews.activity; import com.example.bjnews.R; import android.app.Activity; import android.os.Bundle; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }

点击次数:12955
作者:
web前端行业资讯
Web new NewsList
微软发布WindowsServerBuild17074更新 ,,2018年01月18日凭借一个AI小功能,这款Google应用冲上苹果AppStore榜首 ,,2018年01月18日百度数据可视化实验室正式成立,发布深度学习可视化平台VisualDL ,,2018年01月18日OpenAI开源最新工具包,模型增大10倍只需额外增加20%计算时间 ,,2018年01月18日百度手机输入法8.0正式发布:支持多人语音速记 ,,2018年01月18日CSDN宣布收购TinyMind团队并升级为AI社区 ,,2018年01月18日甲骨文发布补丁修复英特尔芯片漏洞造成的问题 ,,2018年01月18日权威!官方发布CPU熔断和幽灵漏洞防范指引:附补丁下载 ,,2018年01月18日Oracle宣布新的JavaChampions ,,2018年01月18日腾讯加码区块链项目已悄然注册“以太锁”商标 ,,2018年01月18日Fedora28壁纸征集活动现已开幕:将持续至2月13日 ,,2018年01月18日苹果WebKit团队发布Speedometer2.0网页响应测试工具 ,,2018年01月18日百度输入法8.0后天发布:全感官AI输入 ,,2018年01月18日腾讯和乐高合作:共同研发智能玩具、游戏 ,,2018年01月18日HomePod上市日益临近智能音箱市场吸引力越来越大 ,,2018年01月18日3D打印脑组织?科学家正在向这一目标正在前进 ,,2018年01月18日英特尔公布修补漏洞后PC性能数据:8代CPU影响最小 ,,2018年01月18日云存储公司Dropbox秘密提交IPO申请估值超百亿美元 ,,2018年01月18日iPod之父:防手机上瘾无技术难度苹果谷歌应承担责任 ,,2018年01月18日芯片不安全英特尔云客户考虑转用AMD等对手处理器 ,,2018年01月18日2018年Java展望 ,,2018年01月18日区块链有多火?快播流量矿石遭20多万人疯抢 ,,2018年01月18日Intel搞定神经拟态芯片:模拟人类大脑、自主学习 ,,2018年01月18日阿里巴巴发布IoTConnect开放连接协议,盼推动语音互动入口普及 ,,2018年01月18日区块链火了,全球大佬们怎么看? ,,2018年01月18日Facebook正测试新功能主推本地新闻资讯 ,,2018年01月18日在GooglePlay中发现使用Kotlin开发的安卓恶意软件 ,,2018年01月18日VisualStudio201715.6预览版本2,增加新功能 ,,2018年01月18日百度陆奇:AI是5G最好的加速器 ,,2018年01月18日PinterestCEO:不同于谷歌和Facebook,我们走了第三条路 ,,2018年01月18日基于数据库的在线人数,日访问量等统计2014年01月29日注册表的备份2014年01月29日NSURLSession下载和断点续传【移动开发】2015年05月05日hive函数----集合统计函数 【编程语言】2015年05月28日MyEclipse点击部署按钮无效 【架构设计】2015年06月18日数据库导入过大报错ERROR2006(HY000)atlinexx:MySQLserverhasgoneaway解决方法 【编程语言】2014年11月04日BZOJ3940Usaco2015FebCensoringAC自动机 【移动开发】2015年04月13日Hibernate(十)继承结构映射【移动开发】2015年07月21日php函数间的参数传递(值传递引用传递)2014年01月29日强引用,软引用,弱引用,虚引用 【移动开发】2015年04月24日xml解析 【编程语言】2015年02月11日MapView和ViewPagerFragment切换黑屏问题解决方案 【数据库】2015年07月28日面向对象继承实例(a如何继承b问题)(自写)2014年01月29日一些让人赏心悦目的网站,有的时候不需要多么华丽,【编程语言】2014年11月04日【2】MQTT,mosquitto,EclipsePaho----mosquitto使用扫盲 【综合】2015年06月02日JavaScript井字棋人工智能实现代码2014年01月29日poj2240floyd算法【综合】2015年07月03日ubuntu语言设置成汉语 【综合】2014年11月10日ArcGIS教程:了解冲突解决和制图综合 【综合】2015年05月28日display和visibility的区别 【综合】2015年03月30日JAVA平台开放图表绘制类库——JFreeChart 【移动开发】2015年02月09日XML总结 【综合】2014年12月23日如何检测网站被挂马及解决办法2014年01月28日【递推+dfs】ZOJ3436.JulyNumber【编程语言】2015年07月28日js中作用域与作用域链详解【移动开发】2015年08月04日不root的情况下查看App的数据表【编程语言】2014年11月08日图像替换新技术状态域方法2014年01月29日sharepointHttpModule实现方式 【移动开发】2015年06月24日JavaGUI阅读器之面板设计 【Web前端】2014年12月30日【POJ2187】BeautyContest 【编程语言】2015年02月25日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)