Android使用KenBurnsView实现App启动页动态特效

App启动页面的动态效果,参考KenBurnsView静态图片通过放大缩小来实现动效。

Android中使用

1、app->build.gradle引入组件

dependencies {
    compile 'com.flaviofaria:kenburnsview:1.0.7'
}

2、布局XML文件中使用

<com.flaviofaria.kenburnsview.KenBurnsView
    android:id="@+id/image"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:src="@drawable/your_drawable" />

3、代码中可对其监听

KenBurnsView kbv = (KenBurnsView) findViewById(R.id.image);
kbv.setTransitionListener(new TransitionListener() {
    @Override
    public void onTransitionStart(Transition transition) {
           //TODO 动效开始

    }
    @Override
    public void onTransitionEnd(Transition transition) {
          //TODO  动效结束
    }
});

4、可对其暂停/恢复动效

//暂停动效
kbv.pause();    

//恢复动效
kbv.resume();   

5、设置动画的插值和过度时间

RandomTransitionGenerator generator = new RandomTransitionGenerator(duration, interpolator);
kbv.setTransitionGenerator(generator);

扩展

这里使用了RN调用原生的私有组件实现(使用position: 'absolute'实现层叠布局)具体实现参考RN中文官方

import React, {Component} from 'react';
import {View, Text,} from 'react-native';
import KenBurnsView from './KenBurnsView'
export default class RN extends Component {
    render() {
        return (
            <View style={{flex: 1}}>
                <View style={{zIndex: 1, position: 'absolute'}}>
                    <KenBurnsView style={{width: 300, height: 600}}/>
                </View>
                <View style={{
                    zIndex: 1,
                    margin: 15,
                    position: 'absolute',
                    right: 0,
                }}>
                    <Text style={{
                        color: '#fff',
                        borderWidth: 1,
                        fontSize: 16,
                        borderColor: '#fff',
                        borderRadius: 8,
                        paddingHorizontal: 10,
                    }}>跳过</Text>
                </View>
            </View>
        );
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值