mirror of https://github.com/TeamNewPipe/NewPipe
61 lines
1.6 KiB
Java
61 lines
1.6 KiB
Java
package us.shandian.giga.ui.common;
|
|
|
|
import android.content.Context;
|
|
import android.graphics.Canvas;
|
|
import android.graphics.ColorFilter;
|
|
import android.graphics.Paint;
|
|
import android.graphics.PixelFormat;
|
|
import android.graphics.drawable.Drawable;
|
|
import android.support.annotation.ColorRes;
|
|
import android.support.annotation.NonNull;
|
|
import android.support.v4.content.ContextCompat;
|
|
|
|
public class ProgressDrawable extends Drawable {
|
|
private float mProgress;
|
|
private int mBackgroundColor, mForegroundColor;
|
|
|
|
public ProgressDrawable(Context context, @ColorRes int background, @ColorRes int foreground) {
|
|
this(ContextCompat.getColor(context, background), ContextCompat.getColor(context, foreground));
|
|
}
|
|
|
|
public ProgressDrawable(int background, int foreground) {
|
|
mBackgroundColor = background;
|
|
mForegroundColor = foreground;
|
|
}
|
|
|
|
public void setProgress(float progress) {
|
|
mProgress = progress;
|
|
invalidateSelf();
|
|
}
|
|
|
|
@Override
|
|
public void draw(@NonNull Canvas canvas) {
|
|
int width = canvas.getWidth();
|
|
int height = canvas.getHeight();
|
|
|
|
Paint paint = new Paint();
|
|
|
|
paint.setColor(mBackgroundColor);
|
|
canvas.drawRect(0, 0, width, height, paint);
|
|
|
|
paint.setColor(mForegroundColor);
|
|
canvas.drawRect(0, 0, (int) (mProgress * width), height, paint);
|
|
}
|
|
|
|
@Override
|
|
public void setAlpha(int alpha) {
|
|
// Unsupported
|
|
}
|
|
|
|
@Override
|
|
public void setColorFilter(ColorFilter filter) {
|
|
// Unsupported
|
|
}
|
|
|
|
@Override
|
|
public int getOpacity() {
|
|
return PixelFormat.OPAQUE;
|
|
}
|
|
|
|
}
|