View(视图)——进度条

一.分类

   1.不可拖动  ProgressBar

   2.可拖动

      1>SeekBar

      2>RatingBar

二.ProgressBar

   1.style  样式

      1>水平

          ?android:attr/progressBarStyleHorizontal;

      2>旋转

         1-默认样式

         2-设置大小

            ?android:attr/progressBarStyleLarge;

   2.水平进度条

      1>progress  当前进度

      2>max  最大进度

      3>secondaryProgress   第二进度:颜色不同。

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:paddingBottom="16dp"
 7     android:paddingLeft="16dp"
 8     android:paddingRight="16dp"
 9     android:paddingTop="16dp"
10     tools:context="com.example.wang.testapp2.TestActivity4"
11     android:orientation="vertical">
12 
13     <ProgressBar
14         android:layout_width="match_parent"
15         android:layout_height="wrap_content"
16         style="?android:attr/progressBarStyleHorizontal"
17         android:progress="40"
18         android:secondaryProgress="50"
19         android:max="80"
20         android:id="@+id/pb_1"/>
21 
22     <ProgressBar
23         android:layout_width="match_parent"
24         android:layout_height="wrap_content"
25         style="?android:attr/progressBarStyleLarge"
26         android:id="@+id/pb_2"/>
27 <LinearLayout>
28 
29 ProgressBar
ProgressBar
 1 package com.example.wang.testapp2;
 2 
 3 import android.app.Activity;
 4 import android.app.AlertDialog;
 5 import android.support.v7.app.AppCompatActivity;
 6 import android.os.Bundle;
 7 import android.util.Log;
 8 import android.view.View;
 9 import android.widget.ImageView;
10 import android.widget.ProgressBar;
11 import android.widget.SeekBar;
12 import android.widget.Toast;
13 
14 public class TestActivity4 extends Activity {
15 
16     ProgressBar pb_1;
17     ProgressBar pb_2;
18 
19     @Override
20     protected void onCreate(Bundle savedInstanceState) {
21         super.onCreate(savedInstanceState);
22         setContentView(R.layout.activity_test4);
23 
24         pb_1=(ProgressBar)findViewById(R.id.pb_1);
25         pb_2=(ProgressBar)findViewById(R.id.pb_2);
26 
27 
28     }
29 }
30 
31 ProgressBar
ProgressBar

三.SeekBar

   1.常用属性

      1>progress  当前进度

      2>max  最大进度

      3>secondaryProgress   第二进度:颜色不同。

   2.监听器

     1>SeekBar.OnSeekBarChangeListener()

         1-void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)  进度变化时触发

         2- void onStartTrackingTouch(SeekBar seekBar)  开始拖动时触发

         3-void onStopTrackingTouch(SeekBar seekBar)  结束拖动时触发

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:paddingBottom="16dp"
 7     android:paddingLeft="16dp"
 8     android:paddingRight="16dp"
 9     android:paddingTop="16dp"
10     tools:context="com.example.wang.testapp2.TestActivity4"
11     android:orientation="vertical">
12 
13     <SeekBar
14         android:layout_width="match_parent"
15         android:layout_height="wrap_content"
16         android:progress="40"
17         android:max="80"
18         android:secondaryProgress="50"
19         android:id="@+id/se_1"/>
20 
21  
22 </LinearLayout>
23 
24 SeekBar
SeekBar
 1 package com.example.wang.testapp2;
 2 
 3 import android.app.Activity;
 4 import android.app.AlertDialog;
 5 import android.support.v7.app.AppCompatActivity;
 6 import android.os.Bundle;
 7 import android.util.Log;
 8 import android.view.View;
 9 import android.widget.ImageView;
10 import android.widget.ProgressBar;
11 import android.widget.SeekBar;
12 import android.widget.Toast;
13 
14 public class TestActivity4 extends Activity {
15 
16     
17     SeekBar se_1;
18 
19 
20     @Override
21     protected void onCreate(Bundle savedInstanceState) {
22         super.onCreate(savedInstanceState);
23         setContentView(R.layout.activity_test4);
24 
25         se_1=(SeekBar)findViewById(R.id.se_1);
26 
27         //AlertDialog ad= new AlertDialog.Builder(this).create();
28 
29         se_1.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
30 
31             //进度变化触发
32             @Override
33             public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
34 
35                 //只要progress变化就被触发
36 
37                 Toast.makeText(TestActivity4.this, "当前进度="+progress, Toast.LENGTH_SHORT).show();
38             }
39 
40             @Override
41             public void onStartTrackingTouch(SeekBar seekBar) {
42 
43                 Log.e("TAG", "进度条开始拖动");
44             }
45 
46             @Override
47             public void onStopTrackingTouch(SeekBar seekBar) {
48 
49                 Log.e("TAG", "进度条停止拖动");
50 
51             }
52         });
53 
54     }
55 }
56 
57 SeekBar
SeekBar

四.RatingBar

   1.numStars  显示星星的总数

   2.rating   当前值

   3.isIndicator   是否不允许人修改

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:paddingBottom="16dp"
 7     android:paddingLeft="16dp"
 8     android:paddingRight="16dp"
 9     android:paddingTop="16dp"
10     tools:context="com.example.wang.testapp2.TestActivity4"
11     android:orientation="vertical">
12 
13 
14     <RatingBar
15         android:layout_width="wrap_content"
16         android:layout_height="wrap_content"
17         android:numStars="7"
18         android:rating="3.5"/>
19         <!--//android:isIndicator="true"-->
20 
21 </LinearLayout>
22 
23 RatingBar
RatingBar

 

转载于:https://www.cnblogs.com/cycanfly/p/5485269.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是实现水平进度条的自定义 View 的步骤: 1. 定义属性 在自定义 View 的类中定义属性,包括进度条的颜色、背景色、高度等等。 ```java public class HorizontalProgressBar extends View { private int mProgressColor; private int mBackgroundColor; private int mHeight; private int mMax; private int mProgress; ... } ``` 2. 重写 onMeasure() 方法 在 onMeasure() 方法中,设置 View 的宽度和高度,以及默认值。 ```java @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int width = MeasureSpec.getSize(widthMeasureSpec); int height = MeasureSpec.getSize(heightMeasureSpec); setMeasuredDimension(width, mHeight); if (MeasureSpec.getMode(heightMeasureSpec) == MeasureSpec.EXACTLY) { height = MeasureSpec.getSize(heightMeasureSpec); } else { height = mHeight; } setMeasuredDimension(width, height); } ``` 3. 重写 onDraw() 方法 在 onDraw() 方法中,绘制进度条和背景。 ```java @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); float ratio = (float) mProgress / (float) mMax; int progressWidth = (int) (getWidth() * ratio); // 绘制背景 Paint bgPaint = new Paint(); bgPaint.setColor(mBackgroundColor); canvas.drawRect(0, 0, getWidth(), getHeight(), bgPaint); // 绘制进度 Paint progressPaint = new Paint(); progressPaint.setColor(mProgressColor); canvas.drawRect(0, 0, progressWidth, getHeight(), progressPaint); } ``` 4. 设置属性 在自定义 View 的 XML 布局中设置属性,如下: ```xml <com.example.customview.HorizontalProgressBar android:id="@+id/horizontal_progress_bar" android:layout_width="match_parent" android:layout_height="wrap_content" app:progressColor="@color/colorPrimary" app:backgroundColor="@color/gray" app:height="5dp" app:max="100" app:progress="30" /> ``` 5. 在代码中使用 在代码中获取自定义 View,设置进度值。 ```java HorizontalProgressBar progressBar = findViewById(R.id.horizontal_progress_bar); progressBar.setProgress(50); ``` 以上就是实现水平进度条的自定义 View 的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值