ProgressBar 進度條 -- Android學習之路


進度條 ProgressBar

  • 常用屬性
  • 常用方法
  • Example

常用屬性

  • style 設置進度條樣式 樣式引用格式:
    • xmlstyle="?android:attr/progressBarStyleHorizontal
  • max 設置進度條最大值
  • progress 設置進度值
  • secondaryProgress 第二進度條
  • maxHeight/maxWidth 最大寬高
  • minHeight/minWidth 最小寬高
  • progressDrawable 設置進度條圖片,可以自定義背景圖 進度圖
  • Indicator 是否是指示器 進度值模糊時使用 可取值 有 false 和true 如果是橫向 效果 默認是false

常用方法

  • setMax() 設置最大值
  • setProgress() 設置進度值
  • getProgress() 獲取進度值
  • setSecondaryProgress() 設置第二進度值
  • getSecondaryProgress() 獲取第二進度值

實例
先來看一張圖片,四種常見的進度條

效果圖

有明顯的進度值,可以通過代碼控制進度

要將style 屬性 設置 為 橫向 ,只有將 style設置為橫向 進度值和最大值才有效

style="?android:attr/progressBarStyleHorizontal"

控件定義

<ProgressBar
android:id="@+id/progressorigin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="?android:attr/progressBarStyleHorizontal"
android:max="10"
android:progress="3"
android:secondaryProgress="4"/>

<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">


<Button
android:id="@+id/add"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="增加"/>

<Button
android:id="@+id/sub"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="減少"/>


</LinearLayout>

通過按鈕控制 進度值

package com.sky.mxc.android.example;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;

public class TestProgressActivity extends AppCompatActivity {

private ProgressBar pbOrigin = null;

private Button btAdd = null;

private Button btSub = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_progress);

pbOrigin= (ProgressBar) findViewById(R.id.progressorigin);
btAdd = (Button) findViewById(R.id.add);
btSub = (Button) findViewById(R.id.sub);
btAdd.setOnClickListener(onClickListener);
btSub.setOnClickListener(onClickListener);



}
//button監聽
private View.OnClickListener onClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.add:
//設置進度值
pbOrigin.setProgress(pbOrigin.getProgress()+1);

break;
case R.id.sub:
//設置進度值
pbOrigin.setProgress(pbOrigin.getProgress()-1);

break;
}
//設置第二進度值
pbOrigin.setSecondaryProgress(pbOrigin.getProgress()+1);

Log.i("Tag","進度值:"+ pbOrigin.getProgress());
Log.i("Tag","第二進度值:"+ pbOrigin.getSecondaryProgress());
}
};
}

進度值模糊不知道具體的進度值

一般定義出來 之后不設置 style屬性 就是不知道進度值的狀態會是一個 一致在轉的圈圈 就是圖中的第三個 效果
第二種效果 是 將 style屬性設置為 橫向 再將 Indicator 屬性設置為true即可

<ProgressBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:indeterminate="true"
style="?android:attr/progressBarStyleHorizontal"/>

最后一種是自定義的圖片

首先在drawable 資源目錄下定義一個 drawable文件 根節點 是 layer-list

設置ProgressBar的 progressDrawable屬性值

drawable資源文件 順序不可顛倒 否則會覆蓋

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

<item android:id="@android:id/background" android:drawable="@mipmap/progressbackground"></item>
<item android:id="@android:id/secondaryProgress" android:drawable="@mipmap/progresssecnd"></item>
<item android:id="@android:id/progress" android:drawable="@mipmap/progress0"></item>
</layer-list>

設置 progressDrawable 屬性(只有將 style 設置為橫向才有效)

 <ProgressBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="10"
android:progress="3"
android:secondaryProgress="5"
android:minHeight="4dp"
android:maxWidth="4dp"
android:progressDrawable="@drawable/progress_drawabale"
style="?android:attr/progressBarStyleHorizontal"/>

這些就是 ProgressBar的基本使用了。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com