全屏播放,轮播,补间动画

//handler方法
private int pos = 0;
    Handler handler = new Handler(){
        @Override
        public void handleMessage(@NonNull Message msg) {
            super.handleMessage(msg);
            vwv.setCurrentItem(pos);
            if (msg.what == arr.size()){
                //无限循环
//                pos = -1;
                //循环一遍跳转
                timerTask.cancel();
                startActivity(new Intent(MainActivity.this,BannerActivity.class));
            }
        }
    };
//系统给的initView方法
private void initView() {
    vwv = (ViewPager) findViewById(R.id.vwv);

    timer = new Timer();
}

//运行
@Override
protected void onResume() {
    super.onResume();
    initTimer();
}
//自己创建的方法
private void initTimer() {
    timerTask = new TimerTask() {
        @Override
        public void run() {
            pos++;
            handler.sendEmptyMessage(pos);
        }
    };
    //延迟一秒,每一秒执行一次
    timer.schedule(timerTask,1000,1000);
}

//停止
@Override
protected void onStop() {
    super.onStop();
    timer.cancel();
    timerTask.cancel();
}
//适配器里的两个手写的方法
@NonNull
@Override
//insta
public Object instantiateItem(@NonNull ViewGroup container, int position) {
    //加载布局
    View view = LayoutInflater.from(context).inflate(R.layout.layout_item_first, null);
    ImageView iv_img = view.findViewById(R.id.iv_img);

    //赋值
    Integer image = arr.get(position);
    iv_img.setImageResource(image);

    //添加到容器
    container.addView(view);

    //返回加载布局
    return view;
}
//dest
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
    container.removeView((View) object);
}

轮播:

//轮播图设置各种功能

		//设置标题
        ArrayList<String> titles = new ArrayList<>();
        titles.add("图片1");
        titles.add("图片2");
        titles.add("图片3");
        
        //附加功能
        //设置标题样式
        banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE);
        //设置标题动画
        banner.setBannerAnimation(Transformer.DepthPage);
        //设置轮播时间
        banner.setDelayTime(1500);
        //设置指示器位置
        banner.setIndicatorGravity(BannerConfig.RIGHT);
        //设置是否自动播放
        banner.isAutoPlay(true);
        //设置标题集合
        banner.setBannerTitles(titles);

        //设置图片集
        banner.setImages(arr);
        //设置图片加载器
        banner.setImageLoader(new ImageLoader() {
            @Override
            public void displayImage(Context context, Object path, ImageView imageView) {
//                Glide.with(上下文).load(路径).into(图片视图);
                Glide.with(context).load(path).into(imageView);
            }
        });
        //开启播放
        banner.start();
private void set() {
    //透明
    AlphaAnimation animation = new AlphaAnimation(1, 0);
    //平移
    TranslateAnimation animation1 = new TranslateAnimation(0, 150, 0, 300);
    //旋转
    RotateAnimation animation2 = new RotateAnimation(0, 60);
    //变大变小,变小小数后面加f
    ScaleAnimation animation3 = new ScaleAnimation(1, 2, 1, 2);
    
    
    //创建set集合
    AnimationSet set = new AnimationSet(this, null);
    //透明
    set.addAnimation(animation);
    //平移
    set.addAnimation(animation1);
    //旋转
    set.addAnimation(animation2);
    //变大
    set.addAnimation(animation3);
    
    //循环次数,-1是无限循环
    set.setRepeatCount(-1);
    //设置时间
    set.setDuration(2000);
    iv_a.startAnimation(set);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值