android 效能引导界面实现

android 功能引导界面实现

一.界面实现:

      借鉴了别人的实例,然后记录下引导界面的实现,总体来说实现不算困难,前提是要有个美工帮你做这些引导图片(找了张图片凑合用吧):

android 效能引导界面实现

   主界面:

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>