Untitled diff

Created Diff never expires
3 Entfernungen
Zeilen
Gesamt
Entfernt
Wörter
Gesamt
Entfernt
Um diese Funktion weiterhin zu nutzen, aktualisieren Sie auf
Diffchecker logo
Diffchecker Pro
65 Zeilen
3 Hinzufügungen
Zeilen
Gesamt
Hinzugefügt
Wörter
Gesamt
Hinzugefügt
Um diese Funktion weiterhin zu nutzen, aktualisieren Sie auf
Diffchecker logo
Diffchecker Pro
65 Zeilen
public class CustomProgressBarDemo extends View
public class CustomProgressBar extends View
{
{
// % value of the progressbar.
// % value of the progressbar.
int progressBarValue = 0;
int progressBarValue = 0;


public CustomProgressBarDemo(Context context)
public CustomProgressBar(Context context)
{
{
super(context);
super(context);
}
}


public CustomProgressBarDemo(Context context, AttributeSet attrs)
public CustomProgressBar(Context context, AttributeSet attrs)
{
{
super(context, attrs);
super(context, attrs);
progressBarValue = attrs.getAttributeIntValue(null, "progressBarValue", 0);
progressBarValue = attrs.getAttributeIntValue(null, "progressBarValue", 0);
}
}


public void setValue(int value)
public void setValue(int value)
{
{
progressBarValue = value;
progressBarValue = value;
invalidate();
invalidate();
}
}


protected void onDraw(Canvas canvas)
protected void onDraw(Canvas canvas)
{
{
super.onDraw(canvas);
super.onDraw(canvas);


float cornerRadius = 30.0f;
float cornerRadius = 30.0f;


// Draw the background of the bar.
// Draw the background of the bar.
Paint backgroundPaint = new Paint();
Paint backgroundPaint = new Paint();
backgroundPaint.setColor(Color.LTGRAY);
backgroundPaint.setColor(Color.LTGRAY);
backgroundPaint.setStyle(Paint.Style.FILL);
backgroundPaint.setStyle(Paint.Style.FILL);
backgroundPaint.setAntiAlias(true);
backgroundPaint.setAntiAlias(true);


RectF backgroundRect = new RectF(0, 0, canvas.getWidth(), canvas.getHeight());
RectF backgroundRect = new RectF(0, 0, canvas.getWidth(), canvas.getHeight());
canvas.drawRoundRect(backgroundRect, cornerRadius, cornerRadius, backgroundPaint);
canvas.drawRoundRect(backgroundRect, cornerRadius, cornerRadius, backgroundPaint);


// Draw the progress bar.
// Draw the progress bar.
Paint barPaint = new Paint();
Paint barPaint = new Paint();
barPaint.setColor(Color.GREEN);
barPaint.setColor(Color.GREEN);
barPaint.setStyle(Paint.Style.FILL);
barPaint.setStyle(Paint.Style.FILL);
barPaint.setAntiAlias(true);
barPaint.setAntiAlias(true);


float progress = (backgroundRect.width() / 100) * progressBarValue;
float progress = (backgroundRect.width() / 100) * progressBarValue;
RectF barRect = new RectF(0, 0, progress, canvas.getClipBounds().bottom);
RectF barRect = new RectF(0, 0, progress, canvas.getClipBounds().bottom);


canvas.drawRoundRect(barRect, cornerRadius, cornerRadius, barPaint);
canvas.drawRoundRect(barRect, cornerRadius, cornerRadius, barPaint);


// Draw progress text in the middle.
// Draw progress text in the middle.
Paint textPaint = new Paint();
Paint textPaint = new Paint();
textPaint.setColor(Color.WHITE);
textPaint.setColor(Color.WHITE);
textPaint.setTextSize(34);
textPaint.setTextSize(34);


String text = progressBarValue + "%";
String text = progressBarValue + "%";
Rect textBounds = new Rect();
Rect textBounds = new Rect();


textPaint.getTextBounds(text, 0, text.length(), textBounds);
textPaint.getTextBounds(text, 0, text.length(), textBounds);


canvas.drawText(text,
canvas.drawText(text,
backgroundRect.centerX() - (textBounds.width() / 2),
backgroundRect.centerX() - (textBounds.width() / 2),
backgroundRect.centerY() + (textBounds.height() / 2),
backgroundRect.centerY() + (textBounds.height() / 2),
textPaint);
textPaint);


}
}
}
}