public class TextProgressView extends AppCompatSeekBar {
private Paint mPaint;
private Rect mRect;
private String mText;
public TextProgressView (@NonNull Context context) {
this(context, null);
}
public TextProgressView (@NonNull Context context, @Nullable AttributeSet attrs) {
this(context, attrs, 0);
}
public TextProgressView (@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initView();
setClickable(false);
setFocusable(false);
setFocusableInTouchMode(false);
setMax(100);
setOnTouchListener(new OnTouchListener() {
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});
}
private void initView() {
mPaint = new Paint();
mPaint.setColor(Color.WHITE);
mPaint.setTextSize(PixelFormat.dip2px(getContext(), 12));
mPaint.setAntiAlias(true);
mRect = new Rect();
mText = "";
}
@Override
protected synchronized void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (TextUtils.isEmpty(this.mText)) return;
mPaint.getTextBounds(this.mText, 0, this.mText.length(), mRect);
float progressRatio = (float) getProgress() / getMax();
canvas.drawText(this.mText, getWidth() * progressRatio - mRect.width()/2f, (getHeight() / 2f) - mRect.centerY(), mPaint);
}
public void setKaihuProgress(int progress) {
this.mText = progress + "%";
setProgress(progress);
}
}
帶文字的進度條
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
推薦閱讀更多精彩內容
- 文字在中間的進度條件,主要思路是文字覆蓋到一根線上。然后使用PorterDuffXfermode處理文字的bitm...
- 使用 Download :1.1.0 其中 '+' 請填寫版本號 Download 后的最新版本 歡迎star,G...