zoukankan      html  css  js  c++  java
  • 安卓学习-界面-ui-ProcessBar

    ProcessBar

    属性 方法 说明
     android:max  setMax(int max)   最大值
     android:progress  setProgress(int progress)  进度
     android:progressDrawable  setProgressDrawable(Drawable d)  轨道图片
     android:indeterminate  setIndeterminate(boolean indeterminate)  进度是否确定,常用在不确定进度,但是有需要进度效果的
     android:indeterminateDrawable  setIndeterminateDrawable(Drawable d)  不确定进度的轨道图片
     android:indeterminateDuration  

     不确定进度的持续时间

    设置了没效果

    例子1

    没1秒,增加1,最大100

    activity_main.xml

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/linearLayout1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:padding="10dp" >
    
        <ProgressBar
            android:id="@+id/ProgressBar1"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:max="100" />
    
    </LinearLayout>
    View Code

    MainActivity.java

    public class MainActivity extends Activity{
    
        ProgressBar progressBar1;
        int proc=0;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            progressBar1=(ProgressBar)findViewById(R.id.ProgressBar1);
            
            new Thread(){
                @Override
                public void run() {
                    while(proc<100){
                        proc=proc+1;
                        try {
                            sleep(1000);
                            handler.sendEmptyMessage(123);
    
                        } catch (InterruptedException e) {
                            // TODO 自动生成的 catch 块
                            e.printStackTrace();
                        }
                        
                    }               
                    
                }
                
            }.start();
        }
        
        Handler handler=new Handler(){
            @Override
            public void handleMessage(Message msg) {
                if(msg.what==123){
                    progressBar1.setProgress(proc);
                }
            }
            
        };
    
    }
    View Code

     例子2

    显示在标题上的进度条

    需要说明的是标题的进度条是从0-10000的,而且最大值是不能设置的

    activity_main.xml

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/linearLayout1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="horizontal"
        android:padding="10dp" >
    
        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="显示" />
    
        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="隐藏" />
    
    </LinearLayout>
    View Code

    MainActivity.java

    public class MainActivity extends Activity{
    
        Button btn1;
        Button btn2;
    
        int proc=0;
        
        Thread thread;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            
          //带进度条的 
          requestWindowFeature(Window.FEATURE_PROGRESS);
          //不带
          requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
            
            setContentView(R.layout.activity_main);
            
            btn1=(Button)findViewById(R.id.button1);
            btn2=(Button)findViewById(R.id.button2);
            
            thread=new Thread(){
                @Override
                public void run() {
                    while(proc<10000){
                        proc=proc+1000;
                        try {
                            sleep(1000);
                            handler.sendEmptyMessage(123);
    
                        } catch (InterruptedException e) {
                            // TODO 自动生成的 catch 块
                            e.printStackTrace();
                        }
                        
                    }               
                    
                }
                
            };
            
            btn1.setOnClickListener(new OnClickListener() {
    
                public void onClick(View v) {
                    setProgressBarIndeterminateVisibility(true);
                    setProgressBarVisibility(true);
                    
                    thread.start();
                
                }
            });
            
            btn2.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    setProgressBarIndeterminateVisibility(false);
                    setProgressBarVisibility(false);
                    
                }
            });
    
    
        }
        
        Handler handler=new Handler(){
            @Override
            public void handleMessage(Message msg) {
                if(msg.what==123){
                    MainActivity.this.setProgress(proc);
                }
            }
            
        };
    
    }
    View Code
  • 相关阅读:
    测试开发进阶——spring boot——MVC——@RequestMapping 和 @GetMapping 和@PostMapping 区别
    测试开发进阶——spring boot——MVC——请求注解@RequestMapping各个属性值
    测试开发进阶——spring boot——MVC——设置请求方式——参数校验——示例
    测试开发进阶——spring boot——MVC——HttpServletRequest获取请求header、请求cookie、请求入参
    一本通1025
    mysql数据库密码修改
    异常处理总结
    [BZOJ] 书堆
    今天,当中国的老百姓已开始用手机付钱买烤红薯的时候,美国大部分老百姓还在用支票付水电费。这种看似很小的差异让中国拥有了独特的竞争力。我们的城市数据资源的积累将比世界任何一个国家都快,这给我们一个重要的机会,用比发达国家更先进的办法解决城市发展问题。
    微信小程序开发
  • 原文地址:https://www.cnblogs.com/weijj/p/3960745.html
Copyright © 2011-2022 走看看