Reputation: 26478
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
.)
Upvotes: 78
Views: 104982
Reputation: 8272
Activity.java
progressBar = (ProgressBar) findViewById(R.id.progressbar);
`progressBar.setVisibility(View.VISIBLE);`// To Show ProgressBar
`progressBar.setVisibility(View.INVISIBLE);` //To Hide ProgressBar
Check here ProgressDialog is deprecated.What is the alternate one to use?
Upvotes: 0
Reputation: 7986
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?
Upvotes: 12
Reputation: 19676
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);
Upvotes: 180