一.界面实现:
借鉴了别人的实例,然后记录下引导界面的实现,总体来说实现不算困难,前提是要有个美工帮你做这些引导图片(找了张图片凑合用吧):
主界面:
public class MainActivity extends PromptActivity { //activity的生命周期 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setGuideResId(R.drawable.prompt2);// 添加引导页 } }
引导界面:
public class PromptActivity extends Activity { private int guideResourceId = 0;// 引导页图片资源id private PromptSharedPreferences psp; @Override protected void onStart() { super.onStart(); addGuideImage();// 添加引导页 } //显示引导图片 public void addGuideImage() { psp = new PromptSharedPreferences(); View view = getWindow().getDecorView().findViewById( R.id.my_content_view);// 查找通过setContentView上的根布局 if (view == null) return; if (psp.takeSharedPreferences(this)) { // 有过功能引导,就跳出 return; } ViewParent viewParent = view.getParent(); if (viewParent instanceof FrameLayout) { final FrameLayout frameLayout = (FrameLayout) viewParent; if (guideResourceId != 0) { // 设置了引导图片 final ImageView guideImage = new ImageView(this); FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT); guideImage.setLayoutParams(params); guideImage.setScaleType(ScaleType.FIT_XY); guideImage.setImageResource(guideResourceId); guideImage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //删除引导图片 frameLayout.removeView(guideImage); //保存记录 psp.saveSharedPreferences(PromptActivity.this, "启动了"); } }); frameLayout.addView(guideImage);// 添加引导图片 } } } //获得图片id protected void setGuideResId(int resId) { this.guideResourceId = resId; } }
布局:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@id/my_content_view" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="58dp" android:layout_marginLeft="150dp" android:text="哈哈哈哈" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="58dp" android:layout_marginLeft="275dp" android:text="哈" /> </RelativeLayout>
本地文件:
public class PromptSharedPreferences { private SharedPreferences sp; // 保存 public void saveSharedPreferences(Context context, String save) { sp = context.getSharedPreferences("prompt", context.MODE_PRIVATE); Editor editor = sp.edit(); editor.putString("state", save); editor.commit();// 保存新数据 } // 取出 public boolean takeSharedPreferences(Context context) { String str = ""; sp = context.getSharedPreferences("prompt", context.MODE_PRIVATE); str = sp.getString("state", ""); if (str.equals("")) { return false; }else{ return true; } } }
添加values/ids.xml:
<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="my_content_view"></item> </resources>