이미지 아래에 둥근 사각형 progress.like가있는 여러 색상의 진행 표시 줄을 만들고 싶습니다. 진행 표시 줄에 두 가지 색상의 둥근 사각형을 만드는 방법은 무엇입니까?
그러나 아래 이미지는 진행 막대 이미지와 같습니다. 여기
나는 다음과 같은 코드를 시도하고 난 내 프로젝트에서 구현 내에 CustomDrawable의
public class FractionDrawable extends Drawable {
private Paint mPaint;
private int mTotalPercent;
private int mProgress1Percent;
private int mProgress1Color;
private int mProgress2Percent;
private int mProgress2Color;
private Context context;
public FractionDrawable(Context context,int totalPercent, int progress1Percent, int progress1Color, int progress2Percent, int progress2Color) {
mPaint = new Paint();
this.mTotalPercent = totalPercent;
this.mProgress1Percent = progress1Percent;
this.mProgress1Color = progress1Color;
this.mProgress2Percent = progress2Percent;
this.mProgress2Color = progress2Color;
this.context =context;
}
@Override
public void draw(Canvas canvas) {
Rect b = getBounds();
float totalProgWidth = b.width() * (mTotalPercent/100f);
float frac1Width = totalProgWidth * (mProgress1Percent/100f);
RectF rect = new RectF(0, 0, totalProgWidth, b.height());
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeWidth(5);
mPaint.setColor(Color.BLACK);
canvas.drawRoundRect(rect, 18, 18, mPaint);
mPaint.setStyle(Paint.Style.FILL);
mPaint.setColor(mProgress1Color);
mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawRect(0, 0, frac1Width, b.height(), mPaint);
mPaint.setColor(mProgress2Color);
mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawRect(frac1Width, 0, totalProgWidth, b.height(), mPaint);
}
@Override
public void setAlpha(int alpha) {
}
@Override
public void setColorFilter(ColorFilter cf) {
}
@Override
public int getOpacity() {
return PixelFormat.TRANSLUCENT;
}
}
이 답변을 업데이트하여 실제로 이것을 고쳤던 것을 보여줄 수 있습니까? – adamk33n3r
하나의 진행 표시 줄에 둥근 사각형이있는 여러 색상으로 진행됩니다. – urveshpatel50