android的Progressbar怎么用

android的Progressbar怎么用,第1张

在windows7 *** 作系统Android studio中按照如下步骤使用Progressbar。

1、使用Android studio创建一个android 项目,如下图:

2、打开该项目的布局文件,如下图:

3、在布局文件中添加一个Progressbar,并设置其基本属性,,运行之后可在模拟器或者真机中观察到该Progressbar如下图:

在progressbar中添加文字

01 public class MyProgress extends ProgressBar{

02 String text

03 Paint mPaint

04

05 public MyProgress(Context context) {

06 super(context)

07 // TODO Auto-generated constructor stub

08 System.out.println("1")

09 initText()

10 }

11

12 public MyProgress(Context context, AttributeSet attrs, int defStyle) {

13 super(context, attrs, defStyle)

14 // TODO Auto-generated constructor stub

15 System.out.println("2")

16 initText()

17 }

18

19

20 public MyProgress(Context context, AttributeSet attrs) {

21 super(context, attrs)

22 // TODO Auto-generated constructor stub

23 System.out.println("3")

24 initText()

25 }

26

27 @Override

28 public synchronized void setProgress(int progress) {

29 // TODO Auto-generated method stub

30 setText(progress)

31 super.setProgress(progress)

32

33 }

34

35 @Override

36 protected synchronized void onDraw(Canvas canvas) {

37 // TODO Auto-generated method stub

38 super.onDraw(canvas)

39 //this.setText()

40 Rect rect = new Rect()

41 this.mPaint.getTextBounds(this.text, 0, this.text.length(), rect)

42 int x = (getWidth() / 2) - rect.centerX()

43 int y = (getHeight() / 2) - rect.centerY()

44 canvas.drawText(this.text, x, y, this.mPaint)

45 }

46

47 //初始化,画笔

48 private void initText(){

49 this.mPaint = new Paint()

50 this.mPaint.setColor(Color.WHITE)

51

52 }

53

54 private void setText(){

55 setText(this.getProgress())

56 }

57

58 //设置文字内容

59 private void setText(int progress){

60 int i = (progress * 100)/this.getMax()

61 this.text = String.valueOf(i) + "%"

62 }

63

64

65 }

这样一个可以满足我们基本需求的进度条就写好了。

用的时候就可以直接在layout的XML里面加了,不过添加的写法稍微有点不同。标记名要写成这个自定义进度条的完整类名,就像下面这样。

1 <hol.test.MyProgress

2android:id="@+id/pgsBar"

3android:max="100"

4android:layout_width="fill_parent"

5android:layout_height="wrap_content"

6style="?android:attr/progressBarStyleHorizontal"

7android:visibility="visible"

8/>

这样写后,可能会因为命名空间改变,下面属性无法用代码提示。一个简单的做法就是,先写一个正常的ProgressBar的标记,把属性写完后,再将ProgressBar替换为我们自定义的进度条的完整类名。

最后,使用方法就和普通的ProgressBar差不多了。

01 public class ProgressTest extends Activity {

02

03 private Button btn_go = null

04 private MyProgress myProgress = null

05 private Handler mHandler

06

07 /** Called when the activity is first created. */

08 @Override

09 public void onCreate(Bundle savedInstanceState) {

10 super.onCreate(savedInstanceState)

11 setContentView(R.layout.main)

12 findView()

13 setParam()

14 addListener()

15

16 mHandler = new Handler(new Callback() {

17

18 @Override

19 public boolean handleMessage(Message msg) {

20 // TODO Auto-generated method stub

21 myProgress.setProgress(msg.what)

22 return false

23 }

24 })

25

26 }

27

28 private void findView(){

29 btn_go = (Button) findViewById(R.id.btn_go)

30 myProgress = (MyProgress) findViewById(R.id.pgsBar)

31 }

32

33 private void setParam(){

34 btn_go.setText("开始")

35 }

36 private void addListener(){

37 btn_go.setOnClickListener(new OnClickListener() {

38

39 @Override

40 public void onClick(View v) {

41 // TODO Auto-generated method stub

42 new Thread(new Runnable() {

43 @Override

44 public void run() {

45 // TODO Auto-generated method stub

46 for(int i = 0i <=50i++){

47 mHandler.sendEmptyMessage(i * 2)

48 try {

49 Thread.sleep(80)

50 } catch (InterruptedException e) {

51 // TODO Auto-generated catch block

52 e.printStackTrace()

53 }

54 }

55 }

56 }).start()

57 }

58 })

59 }

60 }

在windows *** 作系统下Android studio按照如下步骤自动义ProgressBar长形进度条的样式。

1、首先创建一个android项目,打开其中的XML布局文件,如下图:

2、添加ProgressBar控件,如下图:

3、为ProgressBar控件添加样式,只需要添加如下的属性,如下图:


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/7872581.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存