Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create a ProgressBar programmatically?

My application needs to create a small ProgressBar programmatically. ProgressBar doesn't have a method to set the style (I want a small ProgressBar). The constructor can take an AttributeSet, however, it is an interface and requires me to implement a set of functions. Is there a way to set the ProgressBar to a small style? (I can't use XML to create ProgressBar.)

like image 658
Arutha Avatar asked Aug 23 '10 14:08

Arutha


People also ask

What is a difference between SeekBar and ProgressBar in Android?

In Android, SeekBar is an extension of ProgressBar that adds a draggable thumb, a user can touch the thumb and drag left or right to set the value for current progress. SeekBar is one of the very useful user interface element in Android that allows the selection of integer values using a natural user interface.


2 Answers

Most of the time if you provide an AttributeSet manually you have to use one of Android's. Luckily, they've exposed the attribute set that describes a small progress bar. Use this code:

progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleSmall);
like image 166
Neil Traft Avatar answered Oct 20 '22 23:10

Neil Traft


Create a layout xml file in res/layout directory with desired progress bar containig all attributes you need:

<?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" ... />

Next in the Activity class you can create ProgressBar object from that layout:

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

where R.layout.small_progress_bar links to your layout xml file.

Can you still not use xml file?

like image 12
plugmind Avatar answered Oct 20 '22 23:10

plugmind