第二节总结
程序员文章站
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);
上一篇: RabbitMQ
下一篇: python笔记(第二节)