我的應用程序需要編程創建一個小的progressBar。 ProgressBar沒有設置樣式的方法(我想要一個小的 progressBar)。構造函數可以採用AttributeSet,但它是一個接口,並要求我實現一組函數。有沒有方法 設置progressBar小風格? (我不能使用XML創建 進度)如何以編程方式創建ProgressBar?
回答
大多數情況下,如果您手動提供AttributeSet
,則必須使用Android的其中一個。幸運的是,他們公開了描述一個小進度條的屬性集。使用此代碼:
progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleSmall);
與所需的進度條containig所有創建資源佈局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" ... />
下一頁在活動類,你可以從該佈局創建ProgressBar對象:
LayoutInflater inflater = getLayoutInflater();
ProgressBar bar = (ProgressBar) inflater.inflate(R.layout.small_progress_bar, null);
其中R.layout.small_progress_bar鏈接到您的佈局xml文件。
你還不能使用xml文件嗎?
他以編程方式表示。 – 2012-04-18 02:30:37
您可以將contentview設置爲此進度條,並在數據變冷時更改佈局,而不是手動充氣。 – amalBit 2014-04-08 12:23:45
的完整代碼添加進度條下面的方法編程
private ProgressDialog mProgressDialog;
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setMessage("Signing........");
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
mProgressDialog.setCancelable(false);
來電顯示欄下方
mProgressDialog.show();
調用隱藏棒
mProgressDialog.dismiss();
雖然類似,但這是ProgressDialog,而不是ProgressBar。 OP可能不希望爲他的進度指示器進行對話。 – Parker 2017-06-17 13:50:05
此ProgressDialog現已在Android 26中棄用 – 2017-10-30 05:30:29
這使得進度條看起來像是舊的而不是薄的藍色(新的)。 – 2013-07-22 17:30:27
@ kilaka只是爲了將來的參考,將android.r.attr.progressBarStyleSmall更改爲android.R.attr.progressBarStyleHorizontal爲新的一個:) – ElaGorilaki 2014-05-03 16:11:16
@BabyGorilla並沒有progressBarStyleHorizontal工作在所有的Android版本?! – 2014-07-04 12:34:54