欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第二节总结

程序员文章站 2022-07-12 12:57:52
...
这一节主要实现软件的闪屏页和引导页,
闪屏功能:

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

   实现滑动引导页

   引导小圆点实现

一、实现闪屏+判断程序是否第一次运行:运用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);