我试图创建一个"填充"在Android中的形状上的动画。它应该开始变得完全不可见,然后逐渐地“填满”#34;从底部这样:
我特意尝试动画的是一个像这样的圆圈:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
android:color="#666666"/>
<size
android:width="120dp"
android:height="120dp"/>
</shape>
我已经检查了AlphaAnimation,RotateAnimation,ScaleAnimation和TranslateAnimation(动画的子类),但我找不到使用它们的方法。
答案 0 :(得分:6)
以下是我最终解决的问题:
我从github https://github.com/lzyzsd/CircleProgress中包含了这个库,其中包含一个循环进度条(CircleProgress)。我添加了一个倒计时器来逐步增加&#34;进展&#34;它正在显示
以下是代码:
final CircleProgress circularProgress =(CircleProgress)findViewById(R.id.circleProgress);
//Hides the text and the part of the circle which should not be shown
circularProgress.setUnfinishedColor(Color.parseColor("#00000000"));
circularProgress.setTextColor(Color.parseColor("#00000000"));
//Makes the circle red
circularProgress.setFinishedColor("#FF0000");
final int timeToCountDownMilis = 10000;
circularProgress.setMax(timeToCountDownMilis);
//Initiates and starts the countdowntimer which gradually increases the "progress" in the progress bar
new CountDownTimer(timeToCountDownMilis,70){
onTick(long milisUntilFinished){
circularProgress.setProgress(timeToCountDownMilis-(int)milisUntilFinished);
}
onFinish(){
}
}.start();
感谢Stan指出我的循环进度条吧!
答案 1 :(得分:2)
你可以深入挖掘动画,比如drawPath等。在这种情况下我应该做的更简单一点:
- 在屏幕上放置一个完整的红色圆圈
- 输出一个带有白色bg的视图(如正方形),覆盖所有圆圈
- 那个白色方块的动画视图向上移动,露出你的圆圈
您可以使用简单的过渡动画来完成它
那样它看起来就像你想要的填充动画。
好吧,我的回答是根据你提供的图片给出的,它足以覆盖目标。但是如果你希望像进度条这样的东西,那么你应该访问https://github.com/snowdream/awesome-android并查看那里的循环进度条库,至少你可以了解如何实现你的目标或者找出已经完成的目标。 / p>