9,028
社区成员
发帖
与我相关
我的任务
分享
public static void drawable_repeat(Context context, int d, View v) {
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), d);
BitmapDrawable drawable = new BitmapDrawable(bitmap);
drawable.setTileModeXY(TileMode.REPEAT, TileMode.REPEAT);
drawable.setDither(true);
v.setBackgroundDrawable(drawable);
}
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.os.Parcelable;
import android.preference.PreferenceManager;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
public class Guide extends Activity implements OnClickListener,
OnPageChangeListener {
private ViewPager vp;
private ViewPagerAdapter vpAdapter;
private List<View> views;
private RelativeLayout rl;
// 引导图片资源
private static final int[] pics = { R.drawable.guide_1, R.drawable.guide_2,
R.drawable.guide_3, R.drawable.guide_4, R.drawable.guide_5 ,0};
// 记录当前选中位置
private int currentIndex=0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.guide);
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(Guide.this);
Editor editor = sp.edit();
editor.putBoolean("isFirstStart", false);
editor.commit();
rl = (RelativeLayout)findViewById(R.id.rl);
views = new ArrayList<View>();
LinearLayout.LayoutParams mParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
// 初始化引导图片列表
for (int i = 0; i < pics.length; i++) {
ImageView iv = new ImageView(this);
iv.setLayoutParams(mParams);
iv.setImageResource(pics[i]);
iv.setOnClickListener(this);
views.add(iv);
}
vp = (ViewPager) findViewById(R.id.viewpager);
// 初始化Adapter
vpAdapter = new ViewPagerAdapter(views);
vp.setAdapter(vpAdapter);
// 绑定回调
vp.setOnPageChangeListener(this);
Login.drawable_repeat(this, R.drawable.repeat_background_5, rl);
}
/**
* 设置当前的引导页
*/
private void setCurView(int position) {
if (position < 0 || position >= pics.length) {
return;
}
vp.setCurrentItem(position);
}
// 当滑动状态改变时调用
public void onPageScrollStateChanged(int arg0) {
}
// 当当前页面被滑动时调用
public void onPageScrolled(int arg0, float arg1, int arg2) {
if(currentIndex==views.size()-1){
Intent mainIntent = new Intent(Guide.this,Login.class);
Guide.this.startActivity(mainIntent);
finish();
}
}
// 当新的页面被选中时调用
public void onPageSelected(int arg0) {
// 设置底部小点选中状态
currentIndex = arg0;
}
public class ViewPagerAdapter extends PagerAdapter {
// 界面列表
private List<View> views;
public ViewPagerAdapter(List<View> views) {
this.views = views;
}
// 销毁arg1位置的界面
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView(views.get(arg1));
}
public void finishUpdate(View arg0) {
}
// 获得当前界面数
public int getCount() {
if (views != null) {
return views.size();
}
return 0;
}
// 初始化arg1位置的界面
public Object instantiateItem(View arg0, int arg1) {
((ViewPager) arg0).addView(views.get(arg1), 0);
return views.get(arg1);
}
// 判断是否由对象生成界面
public boolean isViewFromObject(View arg0, Object arg1) {
return (arg0 == arg1);
}
public void restoreState(Parcelable arg0, ClassLoader arg1) {
}
public Parcelable saveState() {
return null;
}
public void startUpdate(View arg0) {
}
}
public void onClick(View v) {
if(currentIndex<views.size()-1){
setCurView(currentIndex+1);
}else{
Intent mainIntent = new Intent(Guide.this,Login.class);
Guide.this.startActivity(mainIntent);
finish();
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Intent mainIntent = new Intent(Guide.this,Login.class);
Guide.this.startActivity(mainIntent);
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:descendantFocusability="blocksDescendants"
android:layout_height="fill_parent"
android:id="@+id/rl"
android:orientation="vertical" >
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</RelativeLayout>