如何将垂直ProgressBar实现为活动背景

时间:2016-03-07 15:39:14

标签: java android android-layout android-animation

我在Dribble上通过Oleg Frolov遇到了这个应用程序概念。

实现看起来非常基本,使用水平ScrollView和触发揭示动画的按钮。

我想知道: -

  • 如何实现垂直ProgressBar作为背景 倒计时活动

  • 如何同步ProgressBar的进度,以及TextView的文本更改与计时器/系统时钟。

enter image description here

2 个答案:

答案 0 :(得分:1)

这个project向您展示了如何实现这样的进度条。

答案 1 :(得分:1)

使用自定义drawable非常简单,不需要使用库。

下面是一个关于如何操作的 UNTESTED 示例。

public class CustomDrawable extends Drawable {

   private final int color1;
   private final Paint paint;
   float level;

   public CustomDrawable(int color1, int color2) {
      this.color1 = color1;
      paint = new Paint();
      paint.setColor(color2);
      paint.setStyle(Paint.Style.FILL_AND_STROKE);
   }

   @Override protected boolean onLevelChange(int level) {
      invalidateSelf();
      return true;
   }

   @Override public void draw(Canvas canvas) {
      canvas.drawColor(color1);
      level = getLevel() / 100f;
      canvas.drawRect(
         0,
         canvas.getHeight() * level, // tweak this line if not drawing properly
         canvas.getWidth(),
         canvas.getHeight(), paint);
   }

   @Override public void setAlpha(int alpha) {

   }

   @Override public void setColorFilter(ColorFilter colorFilter) {

   }

   @Override public int getOpacity() {
      return 0;
   }
}
在背景视图上的

只需使用这个drawable:

background.setBackground(new CustomDrawable(color1, color2));

然后更新值u call

background.getBackground().setLevel(... between 0-100...);