android 程序 页面引导图

本文介绍了如何在Android项目中创建一个自定义的引导图层Activity,避免引导图遮挡后面的内容。通过修改styles.xml,声明colors.xml和AndroidManifest.xml中的Activity,以及在目标界面应用引导图的代码实现。
摘要由CSDN通过智能技术生成

由于我做的项目需要         在网上查了  很多资料   也没看到一个比较完整的  方案

今天  我就把我写的   给大家分享一下

1.写一个activity作为引导图层      

public class Guide_activity extends FragmentActivity {
    private LinearLayout guide_image;
    private ImageView guide_image1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_guide_image);
        guide_image = (LinearLayout) findViewById(R.id.guide_image);
        guide_image1 = (ImageView) findViewById(R.id.guide_image1);
        String str = getIntent().getStringExtra("class");
        if(str.equals("Products_fragment")){//用于判断是那个页面过来的   好支持不同的引导图
            guide_image1.setImageResource(R.drawable.guide_products);
        }else if(str.equals("MineFragment_new")){
            guide_image1.setImageResource(R.drawable.guide_mine);
        }
        guide_image.setOnClickListener(new View.OnClickListener() {//设置点击事件   点击这关闭着个引导图activity
            @Override
            public void onClick(View v) {
                finish();
            }
        });
    }
}
引导图层的xml

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/guide_image">
<ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingTop="100dp"
    android:id="@+id/guide_image1"
    />
</LinearLayout>


由于引导图是用的activity  但是activity  会遮住后面的   这就不是我们想要的效果了     所以需要自己写一个style

res/values/styles.xml

<resources xmlns:tools="http://schemas.android.com/tools">
<style name="Transparent">
        <item name="android:windowBackground">@color/transparent_background</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item>
    </style>
</resources>


在colors.xml文档   声明

<?xml version="1.0" encoding="utf-8"?>  
<resources>  
  <color name="transparent_background">#50000000</color>  
</resources>  


在androidManifest.xml文档  声明activity

<activity android:name=".ui.Guide_activity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:exported="false"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@style/Transparent" />
上面一部分引用了  http://norety.iteye.com/blog/648725的内容


2.写一个用于判断用户是否是第一次进入的工具类

public class ChangeLogHelper {


    final static String FINANCIAL_KEY = "financial";
     /**
     *引导图
     * @param context   aaa用于存入Constants.version这个全局变量   这个变量是用于放版本号的   你也可也放别的标识  在下一个方法判断的时候用同样的就行
     */
    public static void  saveFinancial(Context context,String aaa) {
        SharedPreferences preferences = context.getSharedPreferences(PREFS_FILE_NAME, Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = preferences.edit();
        editor.putString(FINANCIAL_KEY, aaa);
        editor.commit();
    }

    /**
     * 获取是否第一次进入
     * @param context
     * @return
     */
    public static boolean getFinancial(Context context) {
        SharedPreferences preferences = context.getSharedPreferences(PREFS_FILE_NAME, Context.MODE_PRIVATE);
        return preferences.getString(FINANCIAL_KEY, "").equals(Constants.version);
    }
}

在需要用到引用图的界面代码

public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
  if(!ChangeLogHelper.getFinancial(getActivity())){//判断是否是第一次进入这页面   是第一次  显示引导图
                    startActivity(new Intent(getActivity(), Guide_activity.class).putExtra("class","Products_fragment"));
            ChangeLogHelper.saveFinancial(getActivity(), Constants.version);//用于设置判断标识
        }
} 



转载请注明  转载于: http://blog.csdn.net/u014451709/article/details/44828237



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值