一款常用的Android APP框架开发(上)

来源:互联网 发布:战舰世界巴尔的摩数据 编辑:程序博客网 时间:2024/04/29 21:19

一、Splash启动页

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 {@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_splash);//用于延时3000ms之后跳转主页面new Handler().postDelayed(new Runnable() {@Overridepublic void run() {Intent intent=new Intent(SplashActivity.this,MainActvity.class);startActivity(intent);finish();}}, 3000);}}


注:SplashActivity还可以做以下工作,使得启动页面更加完善:

(1)可以为图片添加动画效果(如RotateAnimationScaleAnimationAlphaAnimation);

(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; @Overrideprotected 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() {@Overridepublic void onClick(View v) {Intent intent=new Intent(GuidActivity.this,MainActvity.class);startActivity(intent);finish();}});//button这只监听vp_indicator.setOnPageChangeListener(new OnPageChangeListener() {@Overridepublic void onPageSelected(int arg0) {if(arg0!=imageSrc.length-1){btn_start.setVisibility(View.INVISIBLE);}else{btn_start.setVisibility(View.VISIBLE);}}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {}@Overridepublic void onPageScrollStateChanged(int arg0) {}});//CirclePageIndicator设置监听,这样方便判断按键是否显示}class GuidAdapter extends PagerAdapter{ @Overridepublic int getCount() {return imageSrc.length;} @Overridepublic boolean isViewFromObject(View arg0, Object arg1) {return arg0==arg1;}@Overridepublic Object instantiateItem(ViewGroup container, int position) {ImageView image=new ImageView(GuidActivity.this);image.setBackgroundResource(imageSrc[position]);container.addView(image);return image;}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {container.removeView((ImageView)object);}}}

注:需要修改新手引导界面的图片时,可以修改imageSrc里面的资源文件


0 0