第二节总结

这一节主要实现软件的闪屏页和引导页,
闪屏功能:

  • 实现闪屏
  • 判断程序是否第一次运行
  • 自定义字体
  • 实现全屏
引导页功能

   实现滑动引导页

   引导小圆点实现

一、实现闪屏+判断程序是否第一次运行:运用handler延迟2秒发送消息实现闪屏,根据sharedPreferences实现,代码如下
 //实现闪屏,创建handler,接收处理消息
    Handler handler=new Handler(){

        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
           switch (msg.what){
               case StaticClass.HANDLER_SPLASH:
//判断是否首次运行
                   if (isFirst==true){
                       startActivity(new Intent(SplashActvitiy.this, Guide.class));
                       share.putBoolean(SplashActvatiy.this,StaticClass.ISFIRST,false);
                   }else {
                       startActivity(new Intent(SplashActvatiy.this,MainActicvity.class));
                   }
                   break;

           }

            finish();

        }
    };




//发送消息,延迟2000ms,获取sharedPreferences中StaticClass.ISFIRST的值,默认为true
handler.sendEmptyMessageDelayed(StaticClass.HANDLER_SPLASH,2000);
        isFirst= share.getBoolean(this,StaticClass.ISFIRST);

二、自定义字体
    在工具类UtilTool中定义静态方法,在main-assets建立fonts文件夹放入字体文件
public static void setfont(Context mcontext, TextView mtextView){
        //搞不懂怎么用  createFromAsset静态方法 直接用类名去引用
        Typeface typeface=Typeface.createFromAsset(mcontext.getAssets(),"fonts/FONT.TTF");
        mtextView.setTypeface(typeface);

调用:
UtilTool.setfont(this,bear);

三、实现全屏:
在AppComActivity中没有全屏them,所以自己定义,在values-styles中加入
<!--设置全屏主题-->
    <style name="NoActivityFullscreen" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>
然后在AndroidManifest中引用即可

四、滑动引导页
主要是viewPager实现,由于相对布局所以先写ViewPager再写 ImageView,防止覆盖,无法点击
RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.view.ViewPager
        android:id="@+id/guide_viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true"></android.support.v4.view.ViewPager>
<ImageView
        android:id="@+id/guide_back"
        android:layout_alignParentRight="true"
        android:layout_marginRight="10dp"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        android:layout_width="50dp"
        android:layout_height="30dp"
        android:src="@drawable/back"/>

</RelativeLayout>
五、小圆点的实现
布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.view.ViewPager
        android:id="@+id/guide_viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"></android.support.v4.view.ViewPager>
<<小圆点的布局,三个ImageView>>
    <LinearLayout

        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="10dp"
        android:gravity="center">

        <ImageView
            android:id="@+id/guide_img_01"
            android:layout_width="10dp"
            android:layout_height="10dp" />

        <ImageView
            android:id="@+id/guide_img_02"
            android:layout_width="10dp"
            android:layout_height="10dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp" />
        <ImageView
            android:id="@+id/guide_img_03"
            android:layout_width="10dp"
            android:layout_height="10dp" />
    </LinearLayout>


    <ImageView
        android:id="@+id/guide_back"
        android:layout_width="50dp"
        android:layout_height="30dp"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="10dp"
        android:src="@drawable/back" />

</RelativeLayout>
实现:创建方法加载不同的图片
private void setpointimg(boolean ischeekd1,boolean ischeekd2,boolean ischeekd3){
        if (ischeekd1){
            i1.setBackgroundResource(R.drawable.point_on);
        }else {
            i1.setBackgroundResource(R.drawable.point_off);
        }
        if (ischeekd2){
            i2.setBackgroundResource(R.drawable.point_on);
        }else {
            i2.setBackgroundResource(R.drawable.point_off);
        }
        if (ischeekd3){
            i3.setBackgroundResource(R.drawable.point_on);
        }else {
            i3.setBackgroundResource(R.drawable.point_off);
        }


    }
监听ViewPager滑动实现方法


public void onPageSelected(int position) {

switch (position){
                    case 0:
                        setpointimg(true,false,false);
                        break;
                    case 1:
                        setpointimg(false,true,false);
                        break;
                    case 2:
                        setpointimg(false,false,true);
                        break;
                }

            }




六、一些小细节
获取ViewPager中的Button时
view2.findViewById(R.id.start)

实现view的隐藏与显示
可见(visible):
XML文件:android:visibility="visible"
Java代码:view.setVisibility(View.VISIBLE);

不可见(invisible):
XML文件:android:visibility="invisible"
Java代码:view.setVisibility(View.INVISIBLE);

隐藏(gone):
XML文件:android:visibility="gone"
Java代码:view.setVisibility(View.GONE);

接口实现view的点击方法
1.实现 View.OnClickListener
2.重写
public void onClick(View v) {
        switch (v.getId()){
            case R.id.guide_back:
            case R.id.start:

                startActivity(new Intent(this, MainActivity.class));
                finish();

                break;

        }
    }
3.调用

view.setOnClickListener(this);




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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值