您的位置:首页 > 移动开发 > Android开发

Android自定义进度条-带文本(文字进度)的水平进度条(ProgressBar)

2014-04-13 13:41 731 查看
水平进度条,显示进度的文本随着进度而移动。

效果如下,截的静态图。







代码如下TextProgressBar.java



publicclassTextProgressBarextendsProgressBar{

privatePaintmPaint;
privateStringtext;
privatefloatrate;

publicTextProgressBar(Contextcontext,AttributeSetattrs){
super(context,attrs);
//TODOAuto-generatedconstructorstub
initView();
}

publicTextProgressBar(Contextcontext){
super(context);
initView();
}

privatevoidinitView(){

mPaint=newPaint();
mPaint.setAntiAlias(true);
mPaint.setColor(Color.BLUE);
}

@Override
publicsynchronizedvoidsetProgress(intprogress){
setText(progress);
super.setProgress(progress);
}

privatevoidsetText(intprogress){
rate=progress*1.0f/this.getMax();
inti=(int)(rate*100);
this.text=String.valueOf(i)+"%";
}

@Override
protectedsynchronizedvoidonDraw(Canvascanvas){
//TODOAuto-generatedmethodstub
super.onDraw(canvas);
Rectrect=newRect();
mPaint.getTextBounds(text,0,this.text.length(),rect);
//intx=(getWidth()/2)-rect.centerX();
//inty=(getHeight()/2)-rect.centerY();
intx=(int)(getWidth()*rate);
if(x==getWidth()){
//如果为百分之百则在左边绘制。
x=getWidth()-rect.right;
}

inty=(getHeight()/2)-rect.top;
mPaint.setTextSize(22);
canvas.drawText(text,x,y,mPaint);
}

}






xml

<com.example.my_downloader.TextProgressBar
android:id="@+id/pgb_percentage"
android:layout_width="match_parent"
style="?android:attr/progressBarStyleHorizontal"
android:max="100"
android:layout_height="wrap_content"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: