當前位置:首頁 » 安卓系統 » android進度條自定義

android進度條自定義

發布時間: 2023-01-17 12:37:01

『壹』 android自定義環形進度條怎麼自由控制進度條的消失與隱藏

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bluetoothmeter);
mhandler = new Handler();

//通過mSearcheHandler更新UI
mSearchHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(msg.what==0){
//改變環形進度條的進度
mCircleProcessBar.setProgress(mcnt);
mcnt+=1;
if(MCNT_MAX<=mcnt){
mCircleProcessBar.setVisibility(View.GONE);
}
}
}
};
mBlueService = BluetoothLeService.getInstance();
initView();
initEvent();
}

private void initEvent()
{
mImgBtnBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
//搜索
mbtnSearch.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// Prepare list view and initiate scanning
if (m_devicelistadapter != null) {
m_devicelistadapter.clear();
m_devicelistadapter.notifyDataSetChanged();

}
startScan();

//設置圓環進度條的出現時間(秒)
new TimerDelay(mSearchHandler).setDelayTime(CIRCLE_APPARE_TIME,mCircleProcessBar);
mcnt=1;
}
});
}

『貳』 Android開發怎麼自定義繪制如下圖中這種進度條急需!在線等!

一)變換前背景

先來看看progressbar的屬性:
1. <ProgressBar
2. android:id="@+id/progressBar"
3. style="?android:attr/progressBarStyleHorizontal"
4. android:layout_width="match_parent"
5. android:layout_height="wrap_content"
6. android:layout_margin="5dip"
7. android:layout_toRightOf="@+id/progressBarV"
8. android:indeterminate="false"
9. android:padding="2dip"
10. android:progress="50" />
根據style="?android:attr/progressBarStyleHorizontal",我們找到源碼中的style.xml
1. <style name="Widget.ProgressBar.Horizontal">
2. <item name="android:indeterminateOnly">false</item>
3. <item name="android:progressDrawable">@android:drawable/progress_horizontal</item>
4. <item name="android:indeterminateDrawable">@android:drawable/progress_indeterminate_horizontal</item>
5. <item name="android:minHeight">20dip</item>
6. <item name="android:maxHeight">20dip</item>
7. </style>
看到
<item name="android:progressDrawable">@android:drawable/progress_horizontal</item>
木有,繼續發掘源碼,找到drawable下面的progress_horizontal.xml,這就是我們今天的主角了:
1. <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
2.
3. <item android:id="@android:id/background">
4. <shape>
5. <corners android:radius="5dip" />
6. <gradient
7. android:startColor="#ff9d9e9d"
8. android:centerColor="#ff5a5d5a"
9. android:centerY="0.75"
10. android:endColor="#ff747674"
11. android:angle="270"
12. />
13. </shape>
14. </item>
15.
16. <item android:id="@android:id/secondaryProgress">
17. <clip>
18. <shape>
19. <corners android:radius="5dip" />
20. <gradient
21. android:startColor="#80ffd300"
22. android:centerColor="#80ffb600"
23. android:centerY="0.75"
24. android:endColor="#a0ffcb00"
25. android:angle="270"
26. />
27. </shape>
28. </clip>
29. </item>
30.
31. <item android:id="@android:id/progress">
32. <clip>
33. <shape>
34. <corners android:radius="5dip" />
35. <gradient
36. android:startColor="#ffffd300"
37. android:centerColor="#ffffb600"
38. android:centerY="0.75"
39. android:endColor="#ffffcb00"
40. android:angle="270"
41. />
42. </shape>
43. </clip>
44. </item>
45.
46. </layer-list>
看到android:id="@android:id/progress"木有,看到android:id="@android:id/secondaryProgress"木有
把這個文件復制到自己工程下的drawable,就可以隨心所欲的修改shape的屬性,漸變,圓角等等
那麼怎麼放一個圖片進去呢,ok,新建progress_horizontal1.xml:
1. <?xml version="1.0" encoding="utf-8"?>
2. <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
3.
4. <item android:id="@android:id/progress" android:drawable="@drawable/progressbar" />
5.
6. </layer-list>
在android:drawable中指定你處理好的圖片
然後回到布局中
1. <ProgressBar
2. android:id="@+id/progressBar1"
3. android:layout_width="match_parent"
4. android:layout_height="wrap_content"
5. android:layout_below="@+id/progressBar"
6. android:layout_margin="5dip"
7. android:layout_toRightOf="@+id/progressBarV"
8. android:background="@drawable/progress_bg"
9. android:indeterminate="false"
10. android:indeterminateOnly="false"
11. android:maxHeight="20dip"
12. android:minHeight="20dip"
13. android:padding="2dip"
14. android:progress="50"
15. android:progressDrawable="@drawable/progress_horizontal1" />
android:background="@drawable/progress_bg"指定背景
android:progressDrawable="@drawable/progress_horizontal1"前景使用上面的progress_horizontal1

要是還不行

你來我們群里說吧

這里是開發者互相學習交流的 有大神

讓他們給你解釋你的疑問 號 碼look at my n a m e.....

『叄』 android 怎麼自定義繪制如下圖中這種進度條

下面是安卓學習手冊中實現各種進度條的截圖:

要想看各種進度條的實現代碼和文檔,直接去360手機助手中下載安卓學習手冊,例子文檔隨便看。

1、說明

在某些操作的進度中的可視指示器,為用戶呈現操作的進度,還它有一個次要的進度條,用來顯示中間進度,如在流媒體播放的緩沖區的進度。一個進度條也可不確定其進度。在不確定模式下,進度條顯示循環動畫。這種模式常用於應用程序使用任務的長度是未知的。

2、XML重要屬性

android:progressBarStyle:默認進度條樣式

android:progressBarStyleHorizontal:水平樣式

3 重要方法

getMax():返回這個進度條的范圍的上限

getProgress():返回進度

getSecondaryProgress():返回次要進度

incrementProgressBy(int diff):指定增加的進度

isIndeterminate():指示進度條是否在不確定模式下

setIndeterminate(boolean indeterminate):設置不確定模式下

setVisibility(int v):設置該進度條是否可視

4 重要事件

onSizeChanged(int w, int h, int oldw, int oldh):當進度值改變時引發此事件

5進度條的樣式

Widget.ProgressBar.Horizontal長形進度

Androidxml 布局:

<ProgressBar

android:id="@+id/progress_bar"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

style="@android:style/Widget.ProgressBar.Horizontal "

/>

源碼:

private ProgressBar mProgress;

private int mProgressStatus=0;

private Handler mHandler=newHandler();

@Override

protected void onCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mProgress=(ProgressBar)findViewById(R.id.progress_bar);

new Thread(new Runnable(){

@Override

public void run(){

while(mProgressStatus<100){

mProgressStatus=doWork();

mHandler.post(new Runnable(){

@Override

public void run(){

mProgress.setProgress(mProgressStatus);

}

});

}

}

}).start();

}

效果圖:

帶第二進度的進度條

xml配置如下:

<ProgressBar

android:id="@+id/progress_bar_with_second"

style="@android:style/Widget.ProgressBar.Horizontal"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:progress="40"

android:secondaryProgress="70"

android:paddingTop="20dp"

android:paddingBottom="20dp"/>

這里我們設置了初始的進度為40,android:progress的值在mini和max之間即mini<=progressvalue<=max

設置了第二進度條的進度值為70,該值也在mini和max之間。

效果如下:

不確定模式進度條

xml配置文件:

<ProgressBar

android:id="@+id/progress_bar_indeterminate"

style="@android:style/Widget.ProgressBar.Horizontal"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:indeterminate="true"

android:indeterminateBehavior="cycle"

android:paddingBottom="20dp"

android:paddingTop="20dp"

android:progress="40" />

這里通過android:indeterminate="true"設置了當前為無模式進度條

效果如圖:

普通圓形進度:Widget.ProgressBar.Inverse

<ProgressBar

android:id="@+id/progress_bar1"

style="@android:style/Widget.ProgressBar.Inverse"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:progress="50"

android:background="#ff00ff"

android:paddingTop="4dp" />

通過android:backgroup設置了背景色

『肆』 android自定義環形進度條怎麼自由控制進度條的消失與隱藏

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bluetoothmeter);
mhandler = new Handler();

//通過mSearcheHandler更新UI
mSearchHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(msg.what==0){
//改變環形進度條的進度
mCircleProcessBar.setProgress(mcnt);
mcnt+=1;
if(MCNT_MAX<=mcnt){
mCircleProcessBar.setVisibility(View.GONE);
}
}
}
};
mBlueService = BluetoothLeService.getInstance();
initView();
initEvent();
}

private void initEvent()
{
mImgBtnBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
//搜索
mbtnSearch.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// Prepare list view and initiate scanning
if (m_devicelistadapter != null) {
m_devicelistadapter.clear();
m_devicelistadapter.notifyDataSetChanged();

}
startScan();

//設置圓環進度條的出現時間(秒)
new TimerDelay(mSearchHandler).setDelayTime(CIRCLE_APPARE_TIME,mCircleProcessBar);
mcnt=1;
}
});
}

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

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

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

『陸』 Android自定義View實現可拖拽的進度條

在onSizeChanged方法中進行計算,這時可以得到一條與控制項寬度相同的直線,並把路徑設置給PathMeasure

使用PathMeasure得出當前進度的路徑並進行繪制,這里我將上一步的繪制放在了一起

這個矩形的寬度需要我們用繪制最長的文字來確定其寬高

另外矩形的顯示位置也是以當前進度所在的點為中心點

文字顯示的位置計算起來就比較簡單了,直接用上一步算出的矩形的中心點即可,不過這里需要調整文字繪制的垂直的偏移,這樣才能實現文字垂直居中

實現拖拽需要對onTouchEvent方法進行處理,也就是當手指觸摸矩形區域的時候,根據手指橫向滑動的偏移來設置當前的進度,具體如下

為了適配高度的wrap_content屬性,我們需要計算出控制項最小需要顯示的高度

這里我們是用顯示進度的矩形的高度作為控制項最小的高度的,因為矩形的高度是所有圖形最高的一個

https://gitee.com/itfitness/seek-progress-bar

『柒』 Android自定義水平進度條控制項

A Horizontal ProgressBar that is customized easily.

Github傳送門: https://github.com/zhouzhuo810/ZzHorizontalProgressBar

功能簡介
1.支持自定義進度顏色;
2.支持自定義背景顏色;
3.支持自定義背景與進度之間的內間距大小;
4.支持自定義最大值和默認進度值。

與系統控制項相比的優勢 :屬性配置更簡單、大小適配更方便。

Gradle:

Maven:

<h3>What does it look like?</h3>

<h3>How to use it ?</h3>

1.xml

2.java

</br>
<h3>屬性說明:</h3>

玩安卓版王者榮耀的朋友,刷金幣看這里
鏈接: http://pan..com/s/1gfKIeh9


輔助群:171977523

『捌』 【Android】自定義ProgressView-進度條動畫

Github項目地址

如果遇到問題或者好的建議,請反饋到:issue、 [email protected] 或者 [email protected]

如果覺得對你有用的話,贊一下吧!

『玖』 Android 圓形進度條控制項

自定義控制項圓形進度條,支持頂部圓環漸變色,以及動畫功能.

res/vasues/attrs.xml

『拾』 Android自定義雙向進度條

想整個雙向的進度條,就是可以選取播放范圍的。
像這樣:

然而官方控制項里只有單向的。不要慌,我們自己畫一個。
繪制一個進度條主要是三方面。1.樣式,2.尺寸,3.操作監聽。

注釋基本上就把原理說明了一下。

然後就可以在程序中使用了。

相關GitHub項目地址: https://github.com/codeqian/android-class-lib

熱點內容
配置控制台干什麼用的 發布:2025-07-05 10:54:51 瀏覽:958
連信從哪裡改登錄密碼 發布:2025-07-05 10:54:12 瀏覽:396
怎麼修改查詢密碼 發布:2025-07-05 10:49:48 瀏覽:964
matlab文件存儲 發布:2025-07-05 10:40:46 瀏覽:84
梅州市用工實名制管理平台雲存儲 發布:2025-07-05 10:28:59 瀏覽:76
安卓origin怎麼設置 發布:2025-07-05 10:20:10 瀏覽:540
安卓為什麼跳水 發布:2025-07-05 09:55:08 瀏覽:88
達內學校php 發布:2025-07-05 09:52:05 瀏覽:399
獲取資料庫所有表 發布:2025-07-05 09:39:12 瀏覽:654
wcfphp 發布:2025-07-05 09:39:07 瀏覽:178