一款常用的Android APP框架开发(上)
2015-10-07 20:15
537 查看
一、Splash启动页
1、布局文件
注:通过修改android:src="@drawable/splash"可以修改splash启动夜显示的图片
2、SplashActivity类
注:SplashActivity还可以做以下工作,使得启动页面更加完善:
(1)可以为图片添加动画效果(如RotateAnimation,ScaleAnimation,AlphaAnimation);
(2)还可以在加载Splash界面的时候,检查版本更新,从而提示用户及时更新新版本
二、新手引导页
1、布局文件
新手引导界面包含一个ViewPager,一个CirclePageIndicator(用于指示ViewPager)以及一个按键,该按键用于进入主界面,它默认是隐藏的。
2、GuidActivity
注:需要修改新手引导界面的图片时,可以修改imageSrc里面的资源文件
1、布局文件
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/iv_splash" android:src="@drawable/splash" android:layout_height="wrap_content" android:layout_width="wrap_content"/> </RelativeLayout>
注:通过修改android:src="@drawable/splash"可以修改splash启动夜显示的图片
2、SplashActivity类
public class SplashActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); //用于延时3000ms之后跳转主页面 new Handler().postDelayed(new Runnable() { @Override public void run() { Intent intent=new Intent(SplashActivity.this,MainActvity.class); startActivity(intent); finish(); } }, 3000); } }
注:SplashActivity还可以做以下工作,使得启动页面更加完善:
(1)可以为图片添加动画效果(如RotateAnimation,ScaleAnimation,AlphaAnimation);
(2)还可以在加载Splash界面的时候,检查版本更新,从而提示用户及时更新新版本
二、新手引导页
1、布局文件
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.view.ViewPager android:id="@+id/vp_guid" android:layout_height="match_parent" android:layout_width="match_parent"> </android.support.v4.view.ViewPager> <com.viewpagerindicator.CirclePageIndicator android:id="@+id/vp_indicator" android:layout_height="wrap_content" android:layout_width="wrap_content" app:fillColor="#f00" android:padding="20dp" app:pageColor="@android:color/darker_gray" android:layout_centerHorizontal="true" android:layout_alignParentBottom="true" app:radius="7dp" app:strokeWidth="0dp"> </com.viewpagerindicator.CirclePageIndicator> <Button android:id="@+id/btn_start" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="开始体验" android:layout_above="@id/vp_indicator" android:layout_centerHorizontal="true" android:visibility="invisible" android:padding="15dp" android:textSize="22dp"/> </RelativeLayout>
新手引导界面包含一个ViewPager,一个CirclePageIndicator(用于指示ViewPager)以及一个按键,该按键用于进入主界面,它默认是隐藏的。
2、GuidActivity
public class GuidActivity extends Activity { private static final int[] imageSrc={R.drawable.guide_1,R.drawable.guide_2,R.drawable.guide_3}; private ViewPager vp_guid; private CirclePageIndicator vp_indicator; private Button btn_start; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_guid); vp_guid = (ViewPager) findViewById(R.id.vp_guid); vp_indicator = (CirclePageIndicator) findViewById(R.id.vp_indicator); vp_guid.setAdapter(new GuidAdapter()); //为ViewPager设置适配器 vp_indicator.setViewPager(vp_guid); //将indicator和ViewPager关联 btn_start = (Button) findViewById(R.id.btn_start); btn_start.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(GuidActivity.this,MainActvity.class); startActivity(intent); finish(); } });//button这只监听 vp_indicator.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int arg0) { if(arg0!=imageSrc.length-1){ btn_start.setVisibility(View.INVISIBLE); } else{ btn_start.setVisibility(View.VISIBLE); } } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } });//CirclePageIndicator设置监听,这样方便判断按键是否显示 } class GuidAdapter extends PagerAdapter { @Override public int getCount() { return imageSrc.length; } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0==arg1; } @Override public Object instantiateItem(ViewGroup container, int position) { ImageView image=new ImageView(GuidActivity.this); image.setBackgroundResource(imageSrc[position]); container.addView(image); return image; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((ImageView)object); } } }
注:需要修改新手引导界面的图片时,可以修改imageSrc里面的资源文件
相关文章推荐
- android---(Intent)
- Android4.2之Camera系统HAL调用流程
- [置顶] iOS之模仿新浪微博项目经验总结
- Unity Shader 表面着色器边缘光(Rim Lighting)一
- android的AsyncTask用法实践
- [置顶] iOS之手动创建PCH文件
- 解决Android Studio的ADB not responding
- Unity跑酷类游戏自动生成销毁地图
- Android多线程(二)
- cocos代码研究(14)Widget子类Button学习笔记
- 【Android】解决新建的xml文件无法正常加载的问题
- 用drawAtPoint绘制文字(swift)
- <Android Framework 之路>Android5.1 MediaScanner
- Android5.1 MediaScanner
- 【iOS开发】添加子控件方式(懒加载,GCC)
- Android的一些基本属性
- swift开发笔记10 - 通过drawRect自定义控件外观
- 【EventBus】Android 快速通信框架EventBus
- iOS开发中解决iOS8无法定位的问题
- xcode6+ios8最新真机调试教程