【问题标题】:How to create a ProgressBar programmatically?如何以编程方式创建 ProgressBar?
【发布时间】:2011-04-02 16:24:17
【问题描述】:

我的应用程序需要以编程方式创建一个小的ProgressBarProgressBar 没有设置样式的方法(我想要一个小的 ProgressBar)。构造函数可以采用AttributeSet,但是,它是 接口,并要求我实现一组功能。有没有办法 将ProgressBar 设置为小样式? (我不能使用 XML 来创建 ProgressBar.)

【问题讨论】:

    标签: android android-progressbar


    【解决方案1】:

    Activity.java

      progressBar = (ProgressBar) findViewById(R.id.progressbar);
     `progressBar.setVisibility(View.VISIBLE);`// To Show ProgressBar 
     `progressBar.setVisibility(View.INVISIBLE);` //To Hide ProgressBar
    

    在这里查看 ProgressDialog is deprecated.What is the alternate one to use?

    【讨论】:

    • 不确定,但是progressBar 在使其不可见后是否总是在后台运行(只是从UI 中隐藏)?
    • @Shambhu hi,,,yes 它将在后台运行...但是如果您制作 View.GONE 它不会在后台运行以及在前台运行,因为对象是已删除...希望对您有所帮助
    【解决方案2】:

    在 res/layout 目录中创建一个布局 xml 文件,其中包含所需的进度条,其中包含您需要的所有属性:

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

    接下来在 Activity 类中,您可以从该布局创建 ProgressBar 对象:

    LayoutInflater inflater = getLayoutInflater();
        ProgressBar bar = (ProgressBar ) inflater.inflate(R.layout.small_progress_bar, null);
    

    其中 R.layout.small_progress_bar 链接到您的布局 xml 文件。

    你还不能用xml文件吗?

    【讨论】:

    • 您可以将您的内容视图设置为此进度条,并在您的数据加载后更改布局,而不是手动膨胀。
    【解决方案3】:

    大多数情况下,如果您手动提供AttributeSet,则必须使用其中一个 Android。幸运的是,他们公开了描述小进度条的属性集。使用此代码:

    progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleSmall);
    

    【讨论】:

    • 这使进度条看起来偏黄和陈旧,而不是细蓝色(新)。
    • @kilaka 仅供参考,将 android.R.attr.progressBarStyleSmall 更改为 android.R.attr.progressBarStyleHorizo​​ntal 以获得新的 :)
    • @BabyGorillaprogressBarStyleHorizo​​ntal 是否适用于所有 android 版本?!
    • @Neil Traft 我试过这段代码,但没有用。那么,我应该打电话给其他人来展示它吗?
    • @AbdulhamidDhaiban 您必须将您的ProgressBar 添加到ViewGroup,例如LinearLayout,然后它才会出现在屏幕上。
    猜你喜欢
    • 2016-11-04
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 2013-03-10
    • 2013-11-15
    • 2013-12-28
    • 2011-02-10
    相关资源
    最近更新 更多