本文主要是介绍android 撒花动画,Android UI:撒花动画,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
CoolAnimaions(一)
最近做一个喝水的项目,喝水达到目标量要一个酷炫的动画,看到有些app上有这个动画,模仿了一下。
RainView
rain_view.gif
支持各种形状,多边形,星形
自定义多边形,星型drawable
可设置最多显示数量
思路就是通过召唤师控制下雨,召唤师有一个雨滴生成器召唤雨滴。各司其职,容易扩展。
关键类
召唤师ISummoner
public interface ISummoner {
interface IRaindropCreator{
void injectRaindrops(ISummoner summoner);
}
void initRaindrops(List list);
List getRaindrops();
/**
* start to rain
*/
void fall();
/**
* stop the rain
*/
void stop();
void deployRaindrops();
boolean shouldAbandon(IRainDrop rainDrop);
void setRaindropCreator(IRaindropCreator raindropCreator);
void setMaxRaindropCount(int maxRaindropCount);
int getMaxRaindropCount();
}
雨滴元素IRainDrop
public interface IRainDrop {
void setInitPosition(PointF pointF);
PointF getInitPosition();
void setRaindropWidth(int width);
int getRaindropWidth();
void setRaindropHeight(int height);
int getRaindropHeight();
void setCurrentX(float x);
float getCurrentX();
void setCurrentY(float y);
float getCurrentY();
float getRaindropRotation();
void setRaindropRotation(float rotation);
float getRaindropRotationSpeed();
void setRaindropRotationSpeed(float speed);
void setSpeedX(float speedX);
float getSpeedX();
void setSpeedY(float speedY);
float getSpeedY();
/**
* move to position
*/
void moveTo(float x,float y);
void draw(Canvas canvas);
boolean isLoop();
void setLoop(boolean loop);
}
示例用法
mRainView = findViewById(R.id.rain_view);
mRainView.setMaxRaindropCount(25);
mRainView.setRaindropCreator(new RaindropCreator());
mRainView.fall();
这篇关于android 撒花动画,Android UI:撒花动画的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!