基本信息
源码名称:android实现自定义滚动条
源码大小:1.51KB
文件格式:.java
开发语言:Java
更新时间:2015-12-12
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
package com.test; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.util.AttributeSet; import android.widget.ProgressBar; public class MyProgress extends ProgressBar { private String text; private Paint mPaint; private static final int TEXT_SIZE=25; public MyProgress(Context context) { super(context); initText(); } public MyProgress(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); initText(); } public MyProgress(Context context, AttributeSet attrs) { super(context, attrs); initText(); } @Override public synchronized void setProgress(int progress) { setText(progress); super.setProgress(progress); } @Override protected synchronized void onDraw(Canvas canvas) { super.onDraw(canvas); Rect rect = new Rect(); this.mPaint.getTextBounds(this.text, 0, this.text.length(), rect); int x = (getWidth() / 2) - rect.centerX(); int y = (getHeight() / 2) - rect.centerY(); canvas.drawText(this.text, x, y, this.mPaint); } // 初始化,画笔 private void initText() { this.mPaint = new Paint(); this.mPaint.setAntiAlias(true); this.mPaint.setColor(Color.WHITE); this.mPaint.setTextSize(TEXT_SIZE); } @SuppressWarnings("unused") private void setText() { setText(this.getProgress()); } // 设置文字内容 private void setText(int progress) { int i = (progress * 100) / this.getMax(); this.text = String.valueOf(i) "%"; } }