如何以编程方式创建ProgressBar?

Aru*_*tha 72 android android-progressbar

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

Nei*_*aft 172

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

progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleSmall);
Run Code Online (Sandbox Code Playgroud)

  • @kilaka只是为了将来的参考,将android.R.attr.progressBarStyleSmall更改为android.R.attr.progressBarStyleHorizo​​ntal用于新的:) (8认同)
  • @Neil Traft我尝试了这段代码,但没有用.那么,我可以打电话给其他任何东西来表明吗? (3认同)
  • @AbdulhamidDhaiban您必须将“ ProgressBar”添加到“ LinearLayout”之类的“ ViewGroup”中,然后才将其显示在屏幕上。 (2认同)

plu*_*ind 13

在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" ... />
Run Code Online (Sandbox Code Playgroud)

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

LayoutInflater inflater = getLayoutInflater();
    ProgressBar bar = (ProgressBar ) inflater.inflate(R.layout.small_progress_bar, null);
Run Code Online (Sandbox Code Playgroud)

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

你还能不用xml文件吗?

  • 他以编程方式说. (148认同)