您的位置:首页 > 移动开发

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

2015-10-07 20:15 537 查看
一、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 {
@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里面的资源文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: