Android面试题——页面上现有ProgressBar控件progressBar,请用书写线程以10秒的的时间完成其进度显示工作。

首先式布局文件:

<?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"  
    tools:context="com.duanlian.progressbardemo.MainActivity">  

    <ProgressBar  
        style="@android:style/Widget.ProgressBar.Horizontal"  
        android:id="@+id/progressbar"  
        android:layout_centerInParent="true"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  

        />  
</RelativeLayout>  

Activity里面具体实现:

package com.duanlian.progressbardemo;  

import android.support.v7.app.AppCompatActivity;  
import android.os.Bundle;  
import android.widget.ProgressBar;  

/**  
 * 页面上现有ProgressBar控件progressBar,请用书写线程以10秒的的时间完成其进度显示工作。  
 */  
public class MainActivity extends AppCompatActivity {  
    private ProgressBar progressBar;  

    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        initView();  
        progressBarChange();  
    }  

    /**  
     * progressBar改变  
     */  
    private void progressBarChange() {  
        //开启一个线程  
        Thread thread = new Thread(new Runnable() {  
            @Override  
            public void run() {  
                //得到progeressBar的最大长度  
                int progressBarMax = progressBar.getMax();  
                try {  
                    //progressBar当前的长度没有达到他的最长度,让循环一直进行  
                    while (progressBarMax != progressBar.getProgress()) {  
                        //拿到一个每次前进的进度值,因为是要10s完成,所以分为10份  
                        int stepProgress = progressBarMax / 10;  
                        //progressBar当前的进度值  
                        int currentProgress = progressBar.getProgress();  
                        //让progressBar进度为每次前进最大值的十分之一  
                        progressBar.setProgress(currentProgress + stepProgress);  
                        //前进一次,睡眠一秒  
                        Thread.sleep(1000);  
                    }  

                } catch (Exception e) {  
                    e.printStackTrace();  
                }  

            }  
        });  
        //开启线程  
        thread.start();  
    }  

    /**  
     * 初始View  
     */  
    private void initView() {  
        progressBar = (ProgressBar) findViewById(R.id.progressbar);  

    }  
}  

代码注释很详细我就不说了!

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
[入门数据分析的第一堂课]这是一门为数据分析小白量身打造的课程,你从网络或者公众号收集到很多关于数据分析的知识,但是它们零散不成体系,所以第一堂课首要目标是为你介绍:Ø  什么是数据分析-知其然才知其所以然Ø  为什么要学数据分析-有目标才有动力Ø  数据分析的学习路线-有方向走得更快Ø  数据分析的模型-分析之道,快速形成分析思路Ø  应用案例及场景-分析之术,掌握分析方法[哪些同学适合学习这门课程]想要转行做数据分析师的,零基础亦可工作中需要数据分析技能的,例如运营、产品等对数据分析感兴趣,想要更多了解的[你的收获]n  会为你介绍数据分析的基本情况,为你展现数据分析的全貌。让你清楚知道自己该如何在数据分析地图上行走n  会为你介绍数据分析的分析方法和模型。这部分是讲数据分析的道,只有学会底层逻辑,能够在面对问题时有自己的想法,才能够下一步采取行动n  会为你介绍数据分析的数据处理和常用分析方法。这篇是讲数据分析的术,先有道,后而用术来实现你的想法,得出最终的结论。n  会为你介绍数据分析的应用。学到这里,你对数据分析已经有了初步的认识,并通过一些案例为你展现真实的应用。[专享增值服务]1:一对一答疑         关于课程问题可以通过微信直接询问老师,获得老师的一对一答疑2:转行问题解答         在转行的过程中的相关问题都可以询问老师,可获得一对一咨询机会3:打包资料分享         15本数据分析相关的电子书,一次获得终身学习

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值