當前位置:首頁 » 安卓系統 » androidprogressbar

androidprogressbar

發布時間: 2022-06-30 08:38:45

⑴ android 怎麼在progressbar中添加文字

在progressbar中添加文字
01 public class MyProgress extends ProgressBar{
02 String text;
03 Paint mPaint;
04
05 public MyProgress(Context context) {
06 super(context);
07 // TODO Auto-generated constructor stub
08 System.out.println("1");
09 initText();
10 }
11
12 public MyProgress(Context context, AttributeSet attrs, int defStyle) {
13 super(context, attrs, defStyle);
14 // TODO Auto-generated constructor stub
15 System.out.println("2");
16 initText();
17 }
18
19
20 public MyProgress(Context context, AttributeSet attrs) {
21 super(context, attrs);
22 // TODO Auto-generated constructor stub
23 System.out.println("3");
24 initText();
25 }
26
27 @Override
28 public synchronized void setProgress(int progress) {
29 // TODO Auto-generated method stub
30 setText(progress);
31 super.setProgress(progress);
32
33 }
34
35 @Override
36 protected synchronized void onDraw(Canvas canvas) {
37 // TODO Auto-generated method stub
38 super.onDraw(canvas);
39 //this.setText();
40 Rect rect = new Rect();
41 this.mPaint.getTextBounds(this.text, 0, this.text.length(), rect);
42 int x = (getWidth() / 2) - rect.centerX();
43 int y = (getHeight() / 2) - rect.centerY();
44 canvas.drawText(this.text, x, y, this.mPaint);
45 }
46
47 //初始化,畫筆
48 private void initText(){
49 this.mPaint = new Paint();
50 this.mPaint.setColor(Color.WHITE);
51
52 }
53
54 private void setText(){
55 setText(this.getProgress());
56 }
57
58 //設置文字內容
59 private void setText(int progress){
60 int i = (progress * 100)/this.getMax();
61 this.text = String.valueOf(i) + "%";
62 }
63
64
65 }
這樣一個可以滿足我們基本需求的進度條就寫好了。
用的時候就可以直接在layout的XML裡面加了,不過添加的寫法稍微有點不同。標記名要寫成這個自定義進度條的完整類名,就像下面這樣。
1 <hol.test.MyProgress
2 android:id="@+id/pgsBar"
3 android:max="100"
4 android:layout_width="fill_parent"
5 android:layout_height="wrap_content"
6 style="?android:attr/progressBarStyleHorizontal"
7 android:visibility="visible"
8 />
這樣寫後,可能會因為命名空間改變,下面屬性無法用代碼提示。一個簡單的做法就是,先寫一個正常的ProgressBar的標記,把屬性寫完後,再將ProgressBar替換為我們自定義的進度條的完整類名。
最後,使用方法就和普通的ProgressBar差不多了。
01 public class ProgressTest extends Activity {
02
03 private Button btn_go = null;
04 private MyProgress myProgress = null;
05 private Handler mHandler;
06
07 /** Called when the activity is first created. */
08 @Override
09 public void onCreate(Bundle savedInstanceState) {
10 super.onCreate(savedInstanceState);
11 setContentView(R.layout.main);
12 findView();
13 setParam();
14 addListener();
15
16 mHandler = new Handler(new Callback() {
17
18 @Override
19 public boolean handleMessage(Message msg) {
20 // TODO Auto-generated method stub
21 myProgress.setProgress(msg.what);
22 return false;
23 }
24 });
25
26 }
27
28 private void findView(){
29 btn_go = (Button) findViewById(R.id.btn_go);
30 myProgress = (MyProgress) findViewById(R.id.pgsBar);
31 }
32
33 private void setParam(){
34 btn_go.setText("開始");
35 }
36 private void addListener(){
37 btn_go.setOnClickListener(new OnClickListener() {
38
39 @Override
40 public void onClick(View v) {
41 // TODO Auto-generated method stub
42 new Thread(new Runnable() {
43 @Override
44 public void run() {
45 // TODO Auto-generated method stub
46 for(int i = 0;i <=50; i++){
47 mHandler.sendEmptyMessage(i * 2);
48 try {
49 Thread.sleep(80);
50 } catch (InterruptedException e) {
51 // TODO Auto-generated catch block
52 e.printStackTrace();
53 }
54 }
55 }
56 }).start();
57 }
58 });
59 }
60 }

⑵ android中ProgressBar載入完成後怎麼隱藏

用setVisible(View.GONE)方法就可以隱藏。

⑶ android布局文件里的ProgressBar長形進度條怎麼自定義樣式

在windows操作系統下Android studio按照如下步驟自動義ProgressBar長形進度條的樣式。

1、首先創建一個android項目,打開其中的XML布局文件,如下圖:

⑷ android progressbar 水平樣式怎麼開始動

Android ProgressBar 樣式大全,包含幾乎大部分常用的樣式
工具/原料
Eclipse
Android ADT
方法/步驟
1
普通圓形ProgressBar
該類型進度條也就是一個表示運轉的過程,例如發送簡訊,連接網路等等,表示一個過程正在執行中。一般只要在XML布局中定義就可以了。
<progressBar Android:id="@+id/widget43"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical">
</ProgressBar>
此時,沒有設置它的風格,那麼它就是圓形的,一直會旋轉的進度條。
2
超大號圓形ProgressBar
此時,給設置一個style風格屬性後,該ProgressBar就有了一個風格,這里大號ProgressBar的風格是: style="?android:attr/progressBarStyleLarge"完整XML定義是:
<progressBar android:id="@+id/widget196"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?android:attr/progressBarStyleLarge">
</ProgressBar>

3
小號圓形ProgressBar
小號ProgressBar對應的風格是: style="?android:attr/progressBarStyleSmall"完整XML定義是:
<progressBar android:id="@+id/widget108"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?android:attr/progressBarStyleSmall">
</ProgressBar>
4
標題型圓形ProgressBar
標題型ProgressBar對應的風格是: style="?android:attr/progressBarStyleSmallTitle"完整XML定義是:
<progressBar android:id="@+id/widget110"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?android:attr/progressBarStyleSmallTitle">
</ProgressBar>
5
代碼中實現:

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
//請求窗口特色風格,這里設置成不明確的進度風格
setContentView(R.layout.second);
(true);
//設置標題欄中的不明確的進度條是否可以顯示
}

END
方法/步驟2
長形進度條
布局中的長形進度條
①首先在XML進行布局
<progressBar android:id="@+id/progressbar_updown"
android:layout_width="200dp"
android:layout_height="wrap_content"
style="?android:attr/progressBarStyleHorizontal"
android:layout_gravity="center_vertical"
android:max="100"
android:progress="50"
android:secondaryProgress="70" >
講解:style="?android:attr/progressBarStyleHorizontal"
設置風格為長形 android:max="100"
最大進度值為100 android:progress="50"
初始化的進度值 android:secondaryProgress="70"
初始化的底層第二個進度值 android:layout_gravity="center_vertical" 垂直居中
代碼中運用 private ProgressBar myProgressBar;

//定義ProgressBar
myProgressBar = (ProgressBar) findViewById(R.id.progressbar_updown);
//ProgressBar通過ID來從XML中獲取
myProgressBar.incrementProgressBy(5);
//ProgressBar進度值增加5
myProgressBar.incrementProgressBy(-5);
//ProgressBar進度值減少5
myProgressBar.incrementSecondaryProgressBy(5);
//ProgressBar背後的第二個進度條 進度值增加5
myProgressBar.incrementSecondaryProgressBy(-5);
//ProgressBar背後的第二個進度條 進度值減少5

頁面標題中的長形進度條
代碼實現:
先設置一下窗口風格特性 requestWindowFeature(Window.FEATURE_PROGRESS);
//請求一個窗口進度條特性風格
setContentView(R.layout.main);
setProgressBarVisibility(true);
//設置進度條可視
然後設置進度值 setProgress(myProgressBar.getProgress() * 100);
//設置標題欄中前景的一個進度條進度值
setSecondaryProgress(myProgressBar.getSecondaryProgress() * 100);
//設置標題欄中後面的一個進度條進度值
//ProgressBar.getSecondaryProgress() 是用來獲取其他進度條的進度值
ProgressDialogProgressDialog中的圓形進度條ProgressDialog一般用來表示一個系統任務或是開啟任務時候的進度,有一種稍等的意思。代碼實現:
ProgressDialog mypDialog=new ProgressDialog(this);
//實例化
mypDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
//設置進度條風格,風格為圓形,旋轉的
mypDialog.setTitle("Google");
//設置ProgressDialog 標題
mypDialog.setMessage(getResources().getString(R.string.second));
//設置ProgressDialog 提示信息
mypDialog.setIcon(R.drawable.android);
//設置ProgressDialog 標題圖標
mypDialog.setButton("Google",this);
//設置ProgressDialog 的一個Button
mypDialog.setIndeterminate(false);
//設置ProgressDialog 的進度條是否不明確
mypDialog.setCancelable(true);
//設置ProgressDialog 是否可以按退回按鍵取消
mypDialog.show();
//讓ProgressDialog顯示
ProgressDialog中的長形進度條

代碼實現:
ProgressDialog mypDialog=new ProgressDialog(this);
//實例化
mypDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
//設置進度條風格,風格為長形,有刻度的
mypDialog.setTitle("地獄怒獸");
//設置ProgressDialog 標題
mypDialog.setMessage(getResources().getString(R.string.second));
//設置ProgressDialog 提示信息
mypDialog.setIcon(R.drawable.android);
//設置ProgressDialog 標題圖標
mypDialog.setProgress(59);
//設置ProgressDialog 進度條進度
mypDialog.setButton("地獄曙光",this);
//設置ProgressDialog 的一個Button
mypDialog.setIndeterminate(false);
//設置ProgressDialog 的進度條是否不明確
mypDialog.setCancelable(true);
//設置ProgressDialog 是否可以按退回按鍵取消
mypDialog.show();
//讓ProgressDialog顯示
END
注意事項
該類型進度條也就是一個表示運轉的過程,例如發送簡訊,連接網路等等,表示一個過程正在執行中。
一般只要在XML布局中定義就可以了。

⑸ android中progressbar進度條有哪些

一、進度條的定義。
進度條即計算機在處理任務時,實時的,以圖片形式顯示處理任務的速度,完成度,剩餘未完成任務量的大小,和可能需要處理時間,一般以長方形條狀顯示。
二、進度條的由來。
在數字運算機發明之前,就已經有了進度條的概念。1896 年,Karol Adamiecki(波蘭人;經濟學家,工程師和管理研究人員),發明了一種叫做harmonogram(波蘭語,時間表)的圖表;1903年,他的理論在俄羅斯技術界引起了轟動。他在波蘭雜志《 Przegląd Techniczny 》發表了一些文章(1909)。 1931年,他發表了一篇更廣為人知的文章《armonogram or harmonograf.》(波蘭語,日程或時間表),描述他的圖。Adamiecki只是在波蘭和俄羅斯發表這些文章,較少被英語國家了解。
同一時間,亨利·甘特(Henry Gantt)提出類似的方法已在西方普及,他在1910年和1915年都發表過文章。算是以訛傳訛吧,Adamiecki的圖表就被叫做為甘特圖。這個概念後來被用於計算領域。
三、進度條的應用。
以文件處理為例:
單個文件的進度處理方法:
使用CopyFileEx進行文件復制,這個函數專門提供了一個回調函數用來處理進度條,詳細參見MSDN。
總體進度的處理方法:
如果一批文件,首先獲得文件的數量count = 文件數量
設置進條的范圍為0至count,每完成一個文件,就向前進一步。

⑹ android如何判斷ProgressBar載入的時間的長短

android判斷ProgressBar載入的時間的長短的方法為:
1、得到影片的大小,然後獲取實時下載速度計算時間即可。
2、直接在new ProgressBar 的時候,同時也獲取此時的時間戳,如果時間已經超過了10s,那就關閉ProgressBar 顯示出toast。

⑺ android progressbar 自動載入完畢

ndroid progressbar 自動載入完畢的處理方法為:
1、在主線程中創建子Thread,然後sendMessage給Handle。
2、Android asyncTask .,源碼為:
public class LoadingActivity extends Activity {
private ProgressDialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
//設置一個progressdialog的彈窗
dialog = ProgressDialog.show(this, null, "程序正在載入,請稍候...", true, false);
//啟動一個處理loading業務的線程
new LoadingThread(this).start();
}

private class LoadingThread extends Thread {
private LoadingActivity activity;

public LoadingThread(LoadingActivity act) {
Log.d(">>>>>LoadingThread", "構造方法");
activity = act;
}

public void run() {
Log.d(">>>>>LoadingThread", "傳遞message");
//*********************
// 處理業務
//*********************

//發送消息
activity.mHandler.sendEmptyMessage(0);
}
}

//處理跳轉到主Activity
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
Log.d(">>>>>Mhandler", "開始handleMessage");
Intent mIntent = new Intent();
mIntent.setClass(LoadingActivity.this, PalmHospital_main_Activity.class);
startActivity(mIntent);
LoadingActivity.this.finish();
Log.d(">>>>>Mhandler", "LoadActivity關閉");
if (dialog.isShowing())
dialog.dismiss();
}
};
}

⑻ 關於Android怎麼改變ProgressBar進度條顏色

需求:下載中的顏色要自定義,要替換為另外的一個顏色

方法:就是在

<ProgressBar
android:layout_weight="1"
android:id="@+id/download_item_progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="wrap_content"
android:layout_height="15dip"
android:progressDrawable="@drawable/progressbar_style"></ProgressBar>

在drawable中新建一個progressBar_style.xml文件,

這個屬性進行設置,有兩個方案:

第一,設置兩張圖片:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="">

<item android:id="@android:id/background"
android:drawable="@drawable/progressbar_not" />

<item android:id="@android:id/secondaryProgress"
android:drawable="@drawable/progressbar_not">
</item>

<item android:id="@android:id/progress"
android:drawable="@drawable/progressbar_selected">

</item>
</layer-list>

第二種,設置背景顏色:

<?xml version="1.0" encoding="utf-8"?>
<item android:id="@android:id/background"

>

<shape>

<corners android:radius="5dip" />

<gradient

android:startColor="#666666"

android:centerColor="#666666"

android:centerY="0.75"

android:endColor="#666666"

android:angle="270"

/>

</shape>

</item>

<item android:id="@android:id/progress"

>

<clip>

<shape>

<corners android:radius="5dip" />

<gradient

android:startColor="#da1f3e"

android:centerColor="#da1f3e"

android:centerY="0.75"

android:endColor="#da1f3e"

android:angle="270"

/>

</shape>

</clip>

</item>

<item android:id="@android:id/secondaryProgress"

>

<clip>

<shape>

<corners android:radius="5dip" />

<gradient

android:startColor="#fed7ec"

android:centerColor="#fed7ec"

android:centerY="0.75"

android:endColor="#fed7ec"

android:angle="270"

/>

</shape>

</clip>

</item>

</layer-list>

其中的屬性還要進一步研究具體作用,據文檔翻譯有設置角度,漸變的。
轉載,僅供參考。

熱點內容
scratch少兒編程課程 發布:2025-04-16 17:11:44 瀏覽:642
榮耀x10從哪裡設置密碼 發布:2025-04-16 17:11:43 瀏覽:368
java從入門到精通視頻 發布:2025-04-16 17:11:43 瀏覽:89
php微信介面教程 發布:2025-04-16 17:07:30 瀏覽:312
android實現陰影 發布:2025-04-16 16:50:08 瀏覽:794
粉筆直播課緩存 發布:2025-04-16 16:31:21 瀏覽:348
機頂盒都有什麼配置 發布:2025-04-16 16:24:37 瀏覽:213
編寫手游反編譯都需要學習什麼 發布:2025-04-16 16:19:36 瀏覽:818
proteus編譯文件位置 發布:2025-04-16 16:18:44 瀏覽:369
土壓縮的本質 發布:2025-04-16 16:13:21 瀏覽:596