Android:启动界面动图效果

Android:启动界面动图效果

步骤:

  1. 在欢迎界面布局中设定一个ImageView组件,大小为整个屏幕大小
  2. 利用图片加载框架Glide加载动图
  3. 创建Timer定时器,为他指定调度任务TimerTask,用schedule方法,在指定的延迟之后安排指定的任务执行。

详解

 1. 布局文件:Activity_welcome.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
              android:layout_height="match_parent">

            <ImageView
                android:id="@+id/welcome_gif"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scaleType="fitXY"/>
</LinearLayout>

2. 图片加载库Glide

Glide是google推荐的图片加载库,至今有专人维护

  • Glide导入

在gradle文件中添加依赖: 

dependencies {  
    implementation 'com.github.bumptech.glide:glide:3.7.0'  
    implementation 'com.android.support:support-v4:23.2.1'  
}  

 还可在github下载后加入到libs

  • 加载图片到ImageView
Glide.with(context)
        .load(url)
        .into(imageView);

/*
with() :用于图片加载的生命周期,参数可以是Activity、Fragment等。如传入的是activity,则在activity销毁时将对相关图片资源进行回收。
load() :参数可以为String、Uri、File、资源ID等。
into() :参数可以是ImageView,Target、图片的宽高。
*/

如这里我们需要加载动图welcome.gif到 ImageView welcome_gif组件:

ImageView welcome_gif = (ImageView) findViewById(R.id.welcome_gif);
Glide.with(this).load(R.drawable.welcome).into(welcome_gif); //this为当前Activity
  • 加载图片到ImageView,指定大小、占位图

使用RequestOption对象可指定图片大小、占位图

RequestOptions requestOptions = new RequestOptions();
requestOptions.placeholder(loadingResId) //设置“加载中”状态时显示的图片
              .error(errorResId); //设置“加载失败”状态时显示的图片
requestOptions.override(300, 200); //指定大小为300*200,无视imageView大小

Glide.with(context)
     .load(url)
     .apply(requestOptions)
     .into(imageView);

3. 定时器Timer

创建Timer定时器对象timer,创建定时器任务TimerTask对象 timerTask,之后调用Timer的 schedule方法指定经过多久时间后执行任务。

Timer timer=new Timer();
TimerTask timerTask=new TimerTask() {
      public void run() {
          startActivity(intent);
       }
};
timer.schedule(timerTask,2000);//此处的Delay可以是2*1000,代表两秒
  • Timer 提供的方法
/* 构造方法 */
Timer() //创建一个新的计时器。
Timer(boolean isDaemon) //创建一个新的定时器,其相关线程可以指定为 run as a daemon(守护进程) 。
Timer(String name) //创建一个新的定时器,其相关线程具有指定的名称。
Timer(String name, boolean isDaemon) //创建一个新的定时器,其相关线程具有指定的名称,可以指定为 run as a daemon 。

void schedule(TimerTask task, Date time)  //在指定的时间安排指定的任务执行。
void schedule(TimerTask task, Date firstTime, long period) //从指定的时间开始 ,对指定的任务执行重复的 固定延迟执行 。
void schedule(TimerTask task, long delay) //在指定的延迟之后安排指定的任务执行。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值