第二节总结

来源:互联网 发布:同业分销 知乎 编辑:程序博客网 时间:2024/06/10 02:21
这一节主要实现软件的闪屏页和引导页,
闪屏功能:

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

   实现滑动引导页

   引导小圆点实现

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




原创粉丝点击