进度条ProgressBar及ProgressDialog

Main代码

  1 package processdemo.example.administrator.processbardemo;
  2
  3 import android.app.Dialog;
  4 import android.app.ProgressDialog;
  5 import android.content.DialogInterface;
  6 import android.os.Bundle;
  7 import android.support.v7.app.AppCompatActivity;
  8 import android.util.Log;
  9 import android.view.View;
 10 import android.view.Window;
 11 import android.widget.Button;
 12 import android.widget.ProgressBar;
 13 import android.widget.TextView;
 14 import android.widget.Toast;
 15
 16 public class MainActivity extends AppCompatActivity implements View.OnClickListener{
 17     /*ProgressBar
 18     简介:ProgressBar是进度条组件,通常用于向用户展示某个耗时操作完成的进度,而不让用户感觉是程序失去了响应,从而更好地提升用户界面的友好性
 19     课程目标:
 20             1、制定ProgressBar显示风格(系统默认)
 21             2、ProgressBar的分类
 22             水平进度条,能精确显示,圆圈进度条,不精确显示
 23     3、标题上ProgressBar的设置
 24     4、ProgressBar的关键属性
 25     5、ProgressBar的关键方法
 26     6、ProgressDiglog的基础使用
 27     7、自定义ProgressBar样式*/
 28
 29    private ProgressBar progressBar3;
 30     private Button show;
 31    private Button add;
 32    private Button res;
 33    private Button reset;
 34    private TextView textView;
 35     private ProgressDialog progressDialog;
 36     @Override
 37     protected void onCreate(Bundle savedInstanceState) {
 38         super.onCreate(savedInstanceState);
 39 //        启用窗口特征,启用带进度的进度条和不带进度的进度条,
 40         requestWindowFeature(Window.FEATURE_PROGRESS);
 41         requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
 42         setContentView(R.layout.activity_main);
 43         setProgressBarVisibility(true);
 44         setProgressBarIndeterminateVisibility(false);
 45 //        最大值为Max=10000;
 46         //setProgress(600);
 47         init();
 48
 49     }
 50
 51     private void init() {
 52        ;
 53         progressBar3= (ProgressBar) findViewById(R.id.progressBar3);
 54         show= (Button) findViewById(R.id.show);
 55         add= (Button) findViewById(R.id.add);
 56         res= (Button) findViewById(R.id.res);
 57         reset= (Button) findViewById(R.id.reset);
 58         textView= (TextView) findViewById(R.id.textView);
 59         int first=progressBar3.getProgress();/*获取第一进度*/
 60         int second=progressBar3.getSecondaryProgress();/*获取第二进度*/
 61         int max=progressBar3.getMax();/*获取最大进度*/
 62         textView.setText("第一进度条百分比"+(int)((first/(float)max)*100)+"%"+"第二进度条百分比"+(int)(second/(float)max*100)+"%");
 63
 64         add.setOnClickListener(this);
 65         res.setOnClickListener(this);
 66         reset.setOnClickListener(this);
 67         show.setOnClickListener(this);
 68
 69     }
 70
 71
 72     @Override
 73     public void onClick(View v) {
 74         switch (v.getId()){
 75             case R.id.add:
 76                 progressBar3.incrementProgressBy(10);
 77                 progressBar3.incrementSecondaryProgressBy(10);
 78                 break;
 79             case R.id.res:
 80                 progressBar3.incrementProgressBy(-10);
 81                 progressBar3.incrementSecondaryProgressBy(-10);
 82                 break;
 83             case R.id.reset:
 84                 progressBar3.setProgress(50);
 85                 progressBar3.setSecondaryProgress(50);
 86                 break;
 87             case R.id.show:
 88 //                新建ProgressDialog对象
 89                 progressDialog=new ProgressDialog(MainActivity.this);
 90 //                设置显示风格
 91                 progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
 92 //                    设置标题
 93                 progressDialog.setTitle("慕课网");
 94 //                设置对话框的内容
 95                 progressDialog.setMessage("欢迎大家支持慕课网");
 96 //              设置图标
 97                 progressDialog.setIcon(R.mipmap.ic_launcher);
 98
 99               /*设置关于进度条的一些属性*/
100 //                设置最大进度
101                 progressDialog.setMax(100);
102 //                设置初始化已经增长的进度
103                 progressDialog.incrementProgressBy(50);
104 //                设置进度条明确显示进度
105                 progressDialog.setIndeterminate(false);
106
107                /* 设定一个确定按钮*/
108                 progressDialog.setButton(DialogInterface.BUTTON_POSITIVE,"确定", new Dialog.OnClickListener() {
109                     @Override
110                     public void onClick(DialogInterface dialog, int which) {
111                         Toast.makeText(MainActivity.this,"欢迎大家支持慕课网",Toast.LENGTH_SHORT).show();
112                     }
113                 });
114 //                是否可以通过返回按钮来取消对话框
115                 progressDialog.setCancelable(true);
116 //                显示ProgressDialog
117                 progressDialog.show();
118         }
119         textView.setText("第一进度条百分比"+(int)((progressBar3.getProgress()/(float)progressBar3.getMax())*100)+"%"+"第二进度条百分比"+(int)(progressBar3.getSecondaryProgress()/(float)progressBar3.getMax()*100)+"%");
120     }
121 }

layout中activity_main.xml代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="processdemo.example.administrator.processbardemo.MainActivity">

    <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/progressBar"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="112dp" />

    <ProgressBar
        style="?android:attr/progressBarStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/progressBar2"
        android:layout_centerVertical="true"
        android:layout_alignParentEnd="true"
        android:layout_marginEnd="256dp" />

    <ProgressBar
        style="@android:style/Widget.ProgressBar.Horizontal"
        android:max="100"
        android:progress="50"
        android:secondaryProgress="80"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/progressBar3"
        android:layout_alignParentBottom="true"
        android:layout_alignStart="@+id/progressBar2"
        android:layout_marginBottom="81dp"
        android:layout_alignTop="@+id/res"
        android:progressDrawable="@layout/progress"/><!--progressDrawable改变样式-->

    <ProgressBar
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/progressBar4"
        android:layout_above="@+id/reset"
        android:layout_centerHorizontal="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/增加"
        android:id="@+id/add"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/减少"
        android:id="@+id/res"
        android:layout_above="@+id/add"
        android:layout_alignParentEnd="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/重置"
        android:id="@+id/reset"

        android:layout_alignBottom="@+id/progressBar3"
        android:layout_alignParentEnd="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="进度"
        android:id="@+id/textView"
        android:layout_below="@+id/progressBar"
        android:layout_alignParentEnd="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/显示进度条"
        android:id="@+id/show"
        android:layout_below="@+id/progressBar2"
        android:layout_alignParentEnd="true" />
</RelativeLayout>
   <!-- ProgressBar关键属性
    1.android:max ---最大显示进度
    2.android:progress ---第一显示进度
    3.android:secondaryProgress---第二显示进度
    4.android:isdeterminate ---设置是否精确显示(false为精确,true为不精确)-->

layout中progress.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <item android:id="@android:id/background">
        <shape>
            <corners android:radius="5dip" />
            <gradient
                android:startColor="#76cf76"
                android:centerColor="#125912"
                android:centerY="0.75"
                android:endColor="#212621"
                android:angle="270"
                />
        </shape>
    </item>

    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <corners android:radius="5dip" />
                <gradient
                    android:startColor="#80b51638"
                    android:centerColor="#80a47d1a"
                    android:centerY="0.75"
                    android:endColor="#a066c3a7"
                    android:angle="270"
                    />
            </shape>
        </clip>
    </item>

    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <corners android:radius="5dip" />
                <gradient
                    android:startColor="#a38c1c"
                    android:centerColor="#55a6b6"
                    android:centerY="0.75"
                    android:endColor="#b59826"
                    android:angle="270"
                    />
            </shape>
        </clip>
    </item>

</layer-list>
时间: 2024-11-14 17:04:59

进度条ProgressBar及ProgressDialog的相关文章

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

/** * 带文本提示的进度条 */ public class TextProgressBar extends ProgressBar { private String text; private Paint mPaint; public TextProgressBar(Context context) { super(context); initText(); } public TextProgressBar(Context context, AttributeSet attrs, int d

Android零基础入门第51节:进度条ProgressBar

不知不觉这已经是第51期了,在前面50期我们学了Android开发中使用频率非常高的一些UI组件,当然这些组件还不足够完成所有APP的开发,还会经常用到一些诸如进度条.拖动条.搜索框.时间和日期选择器等组件,那么后面几期就来一起学习这些高级组件. 一.ProgressBar系列组件 ProgressBar也是一组重要的组件,ProgressBar本身代表了进度条组件,它还派生了两个常用的组件:SeekBar和RatingBar.ProgressBar及其子类在用法上十分相似,只是显示界面有一定的

【Android进度条】三种方式实现自定义圆形进度条ProgressBar

一.通过动画实现 定义res/anim/loading.xml如下: [html] view plaincopyprint? <?xml version="1.0" encoding="UTF-8"?> <animation-list android:oneshot="false" xmlns:android="http://schemas.android.com/apk/res/android"> &

WPF 进度条ProgressBar

今天研究了一下wpf的进度条ProgressBar 1.传统ProgressBar WPF进度条ProgressBar 这个控件,如果直接写到循环里,会死掉,界面会卡死,不会有进度.需要把进度条放到单独的线程中. 传统的需要建立 Thread 或者使用 Timer,分别写在不同的方法中.但现在,使用 Dispatcher.Invoke 调用可以实现这个目的. for (int i = 0; i <= 10000; i++)            {                double v

Android-SpinKit 进度条 (ProgressBar)

项目地址: https://github.com/ybq/Android-SpinKit 类别: 进度条 (ProgressBar) 打分: ★★★★★ 更新: 2016-03-28 11:17 大小: 5306 kb 开发环境: Android Studio 浏览: 6538 次 下载: 746 次 ybq / Android-SpinKit Android loading animations https://ybq.github.io/Android-SpinKit 5,665934 介绍

Android学习笔记:进度条ProgressBar的使用以及与AsyncTask的配合使用

ProgressBar时android用于显示进度的组件.当执行一个比较耗时的操作(如io操作.网络操作等),为了避免界面没有变化让用户体验降低,提供一个进度条可以让用户知道程序还在运行. 一.ProgressBar有如下几种常见样式 1.默认进度条的样式为圆圈(为中等大小的圆圈) <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" />

如何实现圆形的进度条(ProgressBar)

在我们实际的工作中可能经常使用到圆形的进度条,但是这是怎么实现的呢?其实这只不过是修改了一下ProgressBar的模板,我们在下面的代码中我们将ProgressBar的Value值绑定到Border的Background上面,并且使用了一个ValueToProcessConverter的转换器进行相应地转换,这里重点介绍一下这个转换器 <ProgressBar Name="pb" Minimum="0" Maximum="100" >

Android——进度条ProgressBar

1.activity_progressbar.xml <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="

android 进度条ProgressBar样式设置

普通圆形ProgressBar 该类型进度条也就是一个表示运转的过程,例如发送短信,连接网络等等,表示一个过程正在执行中.一般只要在XML布局中定义就可以了. <progressBar Android:id="@+id/widget43" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="