Centering Progressbar Programmatically In Android
I'm trying to center a ProgressBar programmatically using the following: ViewGroup layout = (ViewGroup) findViewById(android.R.id.content).getRootView(); progressBar = newProgressB
Solution 1:
I wrote a class based on @DharmarajRupakheti's answer:
publicclassProgressBarHandler {
private ProgressBar mProgressBar;
private Context mContext;
publicProgressBarHandler(Context context) {
mContext = context;
ViewGroup layout = (ViewGroup) ((Activity) context).findViewById(android.R.id.content).getRootView();
mProgressBar = new ProgressBar(context, null, android.R.attr.progressBarStyleLarge);
mProgressBar.setIndeterminate(true);
RelativeLayout.LayoutParams params = new
RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
RelativeLayout rl = new RelativeLayout(context);
rl.setGravity(Gravity.CENTER);
rl.addView(mProgressBar);
layout.addView(rl, params);
hide();
}
publicvoidshow() {
mProgressBar.setVisibility(View.VISIBLE);
}
publicvoidhide() {
mProgressBar.setVisibility(View.INVISIBLE);
}
}
Usage:
mProgressBarHandler = newProgressBarHandler(this); // In onCreate
mProgressBarHandler.show(); // To show the progress bar
mProgressBarHandler.hide(); // To hide the progress bar
Solution 2:
If you want to do it programatically you can do it like below:
RelativeLayout layout = new RelativeLayout(this);
progressBar = new ProgressBar(SignInActivity.this,null,android.R.attr.progressBarStyleLarge);
progressBar.setIndeterminate(true);
progressBar.setVisibility(View.VISIBLE);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(100,100);
params.addRule(RelativeLayout.CENTER_IN_PARENT);
layout.addView(progressBar,params);
setContentView(layout);
Solution 3:
Use your coding in this style, this gives the result you want.
ViewGrouplayout= (ViewGroup) findViewById(android.R.id.content).getRootView();
progressBar = newProgressBar(thisActivity,null,android.R.attr.progressBarStyleLarge);
progressBar.setIndeterminate(true);
progressBar.setVisibility(View.VISIBLE);
RelativeLayout.LayoutParamsparams=newRelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,RelativeLayout.LayoutParams.MATCH_PARENT);
RelativeLayoutrl=newRelativeLayout(thisActivity);
rl.setGravity(Gravity.CENTER);
rl.addView(progressBar);
layout.addView(rl,params);
Solution 4:
You don't need the XML. You can create the view all by code:
@OverrideprotectedvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayoutlayout=newLinearLayout(this);
ProgressBarpb=newProgressBar(this, null,
android.R.attr.progressBarStyleLarge);
ViewGroup.LayoutParamsparams=newViewGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
pb.setLayoutParams(params);
layout.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL);
layout.addView(pb);
setContentView(layout);
}
Post a Comment for "Centering Progressbar Programmatically In Android"