在网上逛到的一款炫酷的控件粒子爆炸特效,什么?你不信真的很炫酷? 话不多说,那我们一起来看一看吧
效果
有这样的
这样的还有这样的
还有这样的还有这样的!
还有这样的把这个用作用户体验操作,不知道有没有感觉到很惊艳呢
1-1
Gradle依赖
dependencies {
implementation 'me.samlss:bloom:1.0.0'
}
Maven
<dependency>
<groupId>me.samlss</groupId>
<artifactId>bloom</artifactId>
<version>1.0.0</version>
<type>pom</type>
</dependency>
代码使用
Bloom.with('activity')
.setParticleRadius(5)
.setEffector(new BloomEffector.Builder()
.setDuration(800)
.setAnchor(view.getWidth() / 2, view.getHeight() / 2)
.build())
.boom(view);
升级版
在该库中,支持三种粒子形状
Bloom.with('activity')
.setParticleRadius(15)
//圆形特效
.setShapeDistributor(new CircleShapeDistributor())
//矩形特效
//or setShapeDistributor(new RectShapeDistributor())
//星型特效
//or setShapeDistributor(new StarShapeDistributor())
.boom(view);
还可以进行使用随机特效
.setShapeDistributor(new ParticleShapeDistributor() {
@Override
public ParticleShape getShape(BloomParticle particle) {
switch (random.nextInt(3)){
case 0:
return new ParticleCircleShape(particle.getInitialX(), particle.getInitialY(), particle.getRadius());
case 1:
return new ParticleRectShape(2, 2, particle.getInitialX(), particle.getInitialY(), particle.getRadius());//设置圆角效果
case 2:
return new ParticleStarShape(particle.getInitialX(), particle.getInitialY(), particle.getRadius());
}
return new ParticleCircleShape(particle.getInitialX(), particle.getInitialY(), particle.getRadius());
}
})
组合起来
Bloom.with(LoginActivity.this)
.setParticleRadius(5)
.setShapeDistributor(new ParticleShapeDistributor() {
@Override
public ParticleShape getShape(BloomParticle particle) {
switch (random.nextInt(3)){
case 0:
return new ParticleCircleShape(particle.getInitialX(), particle.getInitialY(), particle.getRadius());
case 1:
return new ParticleRectShape(2, 2, particle.getInitialX(), particle.getInitialY(), particle.getRadius());//设置圆角效果
case 2:
return new ParticleStarShape(particle.getInitialX(), particle.getInitialY(), particle.getRadius());
}
return new ParticleCircleShape(particle.getInitialX(), particle.getInitialY(), particle.getRadius());
}
})
.setEffector(new BloomEffector.Builder()
.setDuration(800)
.setAnchor(mScratchView.getWidth() / 2, mScratchView.getHeight() / 2)
.build())
.boom(view);
文章很短,路还漫长,大家好,我是玖玖君,一个帅气与才华并存的男人,我们下期再见。
网友评论