使用ViewPager制作Android引导界面

1.涉及Android知识点:

ViewPager组件、Handler机制、SharedPreferences。

2.开发实践: a.布局文件设计。

第一个引导界面one.xml,另外两个布局文件类似。

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=""android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><ImageViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:background="@drawable/guide_1" /></LinearLayout> 引导主界面 guide.xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android=""android:layout_width="match_parent"android:layout_height="match_parent" ><android.support.v4.view.ViewPagerandroid:id="@+id/viewpager"android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="#00000000" ></android.support.v4.view.ViewPager><LinearLayoutandroid:id="@+id/ll"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:gravity="center_horizontal"android:orientation="horizontal" ><ImageViewandroid:id="@+id/iv1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/login_point_selected" /><ImageViewandroid:id="@+id/iv2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/login_point" /><ImageViewandroid:id="@+id/iv3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/login_point" /></LinearLayout></RelativeLayout>

b.Activity设计。

引导界面主类Guide.java

package com.viewpagerdemo;import java.util.ArrayList;import java.util.List;import com.jikexueyuan.viewpagerdemo.R;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;public class Guide extends Activity implements OnPageChangeListener {private ViewPager viewPager;private ViewPagerAdapter viewPagerAdapter;private List<View> views;private ImageView[] dots;private int[] ids = { R.id.iv1, R.id.iv2, R.id.iv3 };private Button start_btn;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.guide);initViews();initDots();}private void initViews() {LayoutInflater inflater = LayoutInflater.from(this);views = new ArrayList<View>();views.add(inflater.inflate(R.layout.one, null));views.add(inflater.inflate(R.layout.two, null));views.add(inflater.inflate(R.layout.three, null));viewPagerAdapter = new ViewPagerAdapter(views, this);viewPager = (ViewPager) findViewById(R.id.viewpager);viewPager.setAdapter(viewPagerAdapter);start_btn = (Button) views.get(2).findViewById(R.id.start_btn);start_btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {Intent i = new Intent(Guide.this, MainActivity.class);startActivity(i);finish();}});viewPager.setOnPageChangeListener(this);}private void initDots() {dots = new ImageView[views.size()];for (int i = 0; i < views.size(); i++) {dots[i] = (ImageView) findViewById(ids[i]);}}@Overridepublic void onPageScrollStateChanged(int arg0) {// TODO Auto-generated method stub}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {// TODO Auto-generated method stub}@Overridepublic void onPageSelected(int arg0) {for (int i = 0; i < ids.length; i++) {if (arg0 == i) {dots[i].setImageResource(R.drawable.login_point_selected);} else {dots[i].setImageResource(R.drawable.login_point);}}}} ViewPager的适配器类ViewPagerAdapter.java

package com.viewpagerdemo;import java.util.List;import android.content.Context;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.view.View;public class ViewPagerAdapter extends PagerAdapter {private List<View> views;private Context context;public ViewPagerAdapter(List<View> views, Context context) {this.views = views;this.context = context;}@Overridepublic void destroyItem(View container, int position, Object object) {((ViewPager) container).removeView(views.get(position));}@Overridepublic Object instantiateItem(View container, int position) {((ViewPager) container).addView(views.get(position));return views.get(position);}@Overridepublic int getCount() {return views.size();}@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {return (arg0 == arg1);}}

c.欢迎界面设计和存储首次使用程序标记类这几年大多是昆明空运来的,

使用ViewPager制作Android引导界面

相关文章:

你感兴趣的文章:

标签云: