android 引导页的制作
来源:互联网 发布:淘宝上正品金丝楠木店 编辑:程序博客网 时间:2024/04/30 11:38
android 引导页的制作
main.xml中的根元素上添加了id
<?xml version="1.0" encoding="utf-8"?><LinearLayout 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:text="@string/hello" /><Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btn" android:text="open sub" /></LinearLayout>
id定义在res/values下的 ids.xml中
<?xml version="1.0" encoding="utf-8"?><resources><item type="id" name="my_content_view"></item></resources>
BasicActivity代码:
package com.my.decorview.test;import android.app.Activity;import android.view.View;import android.view.ViewGroup;import android.view.ViewParent;import android.widget.FrameLayout;import android.widget.ImageView;public class BasicActivity extends Activity { private int guideResourceId=0;//引导页图片资源id @Override protected void onStart() { super.onStart(); addGuideImage();//添加引导页 } /** * 添加引导图片 */ public void addGuideImage() { View view = getWindow().getDecorView().findViewById(R.id.my_content_view);//查找通过setContentView上的根布局 if(view==null)return; if(MyPreferences.activityIsGuided(this, this.getClass().getName())){ //引导过了 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); MyPreferences.setIsGuided(getApplicationContext(), BasicActivity.this.getClass().getName());//设为已引导 } }); frameLayout.addView(guideImage);//添加引导图片 } } } /**子类在onCreate中调用,设置引导图片的资源id *并在布局xml的根元素上设置android:id="@id/my_content_view" * @param resId */ protected void setGuideResId(int resId){ this.guideResourceId=resId; }}偏好设置代码:
package com.my.decorview.test;import android.content.Context;public class MyPreferences { //偏好文件名 public static final String SHAREDPREFERENCES_NAME = "my_pref"; //引导界面KEY private static final String KEY_GUIDE_ACTIVITY = "guide_activity"; /** * 判断activity是否引导过 * * @param context * @return 是否已经引导过 true引导过了 false未引导 */ public static boolean activityIsGuided(Context context,String className){ if(context==null || className==null||"".equalsIgnoreCase(className))return false; String[] classNames = context.getSharedPreferences(SHAREDPREFERENCES_NAME, Context.MODE_WORLD_READABLE) .getString(KEY_GUIDE_ACTIVITY, "").split("\\|");//取得所有类名 如 com.my.MainActivity for (String string : classNames) { if(className.equalsIgnoreCase(string)){ return true; } } return false; } /**设置该activity被引导过了。 将类名已 |a|b|c这种形式保存为value,因为偏好中只能保存键值对 * @param context * @param className */ public static void setIsGuided(Context context,String className){ if(context==null || className==null||"".equalsIgnoreCase(className))return; String classNames = context.getSharedPreferences(SHAREDPREFERENCES_NAME, Context.MODE_WORLD_READABLE) .getString(KEY_GUIDE_ACTIVITY, ""); StringBuilder sb = new StringBuilder(classNames).append("|").append(className);//添加值 context.getSharedPreferences(SHAREDPREFERENCES_NAME, Context.MODE_WORLD_READABLE)//保存修改后的值 .edit() .putString(KEY_GUIDE_ACTIVITY, sb.toString()) .commit(); }}MainActivity中添加引导页
package com.my.decorview.test;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;public class MainActivity extends BasicActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn = (Button)findViewById(R.id.btn); btn.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { startActivity(new Intent(MainActivity.this, SubActivity.class)); } }); setGuideResId(R.drawable.yindao01);//添加引导页 }}
1. 在BasicActivity的子类中的onCreate中调用 setGuideResId(int resId),设置引导图片资源id
2. 布局xml的根元素上添加android:id="@id/my_content_view"
阅读全文
0 0
- android 引导页的制作
- Android---引导界面的制作
- Android APP引导页制作
- Android制作引导页和启动页
- Android ViewPager+ViewPagerIndicator制作引导页
- Android 闪屏页与引导页制作
- Android 引导界面制作
- Android 引导界面制作
- Android 引导界面制作
- Android 引导界面制作
- Android 引导界面制作
- Android 引导界面制作
- Android 引导界面制作
- iOS 引导页的制作和使用
- app动态引导页的制作
- ios中引导页的制作
- 关于APP引导页的简单制作
- Android 制作引导层 使用透明的activity
- pandas基础介绍
- lintcode 加一(Plus One )(Java)
- Java门面模式(或外观模式)
- bzoj 3505 数三角形 组合数 解题报告
- RecyclerView瀑布流如何动态计算imageview的宽高
- android 引导页的制作
- SAP审批策略相关表
- 开发中常见小问题(笔记)
- 对接 PDA 问题件扫描确认上架
- Python中的下划线'_'用法
- maven打包的时候报错:Failed to execute goalcom.google.code.maven-svn-revision-number-plugin:svn-revision-num
- Java中ArrayList和LinkedList区别
- 简单工厂模式
- CentOS 7 系列(二)系统服务配置--单元(Unit)