安卓学习第二十二天:ProgressBar与SeekBar与RatingBar

来源:互联网 发布:java身份证识别 编辑:程序博客网 时间:2024/04/28 18:38

#1安卓当中的进度条

各种进度条之间的关系

ProgressBar之间的关系  

 

所有的进度条都是ProgressBar类的子类

同样一个ProgressBar分为垂直和水平等风格

 

#2SeekBarRatingBar子类的使用方法

 

<ProgressBar/>标签来定义

Style的分类

水平风格:Horizontal

小风格:Small

大风格:Large

反向风格:Inverse  颜色深的控件,适合用在白色背景下

小反向风格Small.Inverse

大反向风格Large.Inverse

风格都使用Style属性来设置

 

#3进度条的主要属性

进度条最大值max

当前进度progress

次要进度的值SecondaryProgress

 

判断是水平还是垂直的,用以下方法

boolean  flag=progressbar.isIndeterminate();

如果是转圈的那种,则返回true

如果是直线的那种,则返回false

 

progressbar.incrementprigressBy(10),不管当前进度多少,都增加10

java代码:

packagecom.myapp.yuanyang.myapplication;

 

importandroid.content.DialogInterface;

importandroid.content.DialogInterface.OnClickListener;

importandroid.support.v7.app.ActionBarActivity;

importandroid.os.Bundle;

importandroid.view.Menu;

importandroid.view.MenuItem;

importandroid.view.View;

importandroid.widget.Button;

importandroid.widget.ProgressBar;

 

 

publicclassMainActivityextendsActionBarActivity{

 

privateProgressBarprogressBar;

privateButtonbut;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.progressbarlayout);

 

progressBar=(ProgressBar)findViewById(R.id.firstProgressBar);

but=(Button)findViewById(R.id.but);

 

progressBarListenerlistener=newprogressBarListener();

but.setOnClickListener(listener);

 

 

}

 

classprogressBarListenerimplementsView.OnClickListener{

 

@Override

publicvoidonClick(Viewv){

progressBar.incrementProgressBy(20);

System.out.println("检测到点击");

}

}

@Override

publicbooleanonCreateOptionsMenu(Menumenu){

//Inflatethemenu;thisaddsitemstotheactionbarifitispresent.

getMenuInflater().inflate(R.menu.menu_main,menu);

returntrue;

}

 

@Override

publicbooleanonOptionsItemSelected(MenuItemitem){

//Handleactionbaritemclickshere.Theactionbarwill

//automaticallyhandleclicksontheHome/Upbutton,solong

//asyouspecifyaparentactivityinAndroidManifest.xml.

intid=item.getItemId();

 

//noinspectionSimplifiableIfStatement

if(id==R.id.action_settings){

returntrue;

}

 

returnsuper.onOptionsItemSelected(item);

}

}

xml代码:

<?xmlversion="1.0"encoding="utf-8"?>

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"android:layout_width="match_parent"

android:layout_height="match_parent">

 

<ProgressBar

android:id="@+id/firstProgressBar"

android:layout_width="match_parent"

android:layout_height="wrap_content"

 

android:layout_centerInParent="true"

 

style="?android:attr/progressBarStyleHorizontal"

 

/>

 

<Button

android:id="@+id/but"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@id/firstProgressBar"

android:text="增加进度"

 

 

/>

 

</RelativeLayout>

 

 

#4 SeekBar的使用方法与监听器OnSeekBarChangedListener

SeekBar的主要属性,它的进度是可以拖动的

进度最大值:max

当前进度:progress

次要进度值SecondaryProgress

 

OnSeekBarChangedListener的主要方法

onProgressChanged(SeekBarseekBar,int progress,boolean fromUser)

onStratTrackingTouch(SeekBarseekBar)

onStopTrackingTouch(SeekBarseekBar)

 

class  SeekBarListener  implements OnseekBarChangedListener{}

 

该对象指得是触发来监听器的SeekBar对象

frimUser的值是判断是否来自用户的输入,如果是来自用户

的拖拽导致的进度条改变,则返回true

 

#5RatingBar的用法与监听器onRatingBarChangedListener

主要属性

星星的个数numStars

当前等级:progress

每前进一格代表的分数stepSize

 

 

java代码:

packagecom.myapp.yuanyang.myapplication;

 

importandroid.content.DialogInterface;

importandroid.content.DialogInterface.OnClickListener;

importandroid.support.v7.app.ActionBarActivity;

importandroid.os.Bundle;

importandroid.view.Menu;

importandroid.view.MenuItem;

importandroid.view.View;

importandroid.widget.Button;

importandroid.widget.ProgressBar;

importandroid.widget.SeekBar;

 

 

publicclassMainActivityextendsActionBarActivity{

 

privateSeekBarseekBar;

privateButtonbut;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.seekbar);

 

seekBar=(SeekBar)findViewById(R.id.seekbar);

but=(Button)findViewById(R.id.but);

 

seekBarListenerlistener=newseekBarListener();

seekBar.setOnSeekBarChangeListener(listener);

 

 

}

 

classseekBarListenerimplementsSeekBar.OnSeekBarChangeListener{

 

 

@Override

publicvoidonProgressChanged(SeekBarseekBar,intprogress,booleanfromUser){

System.out.println("Progress"+progress+"FromUser"+fromUser);

}

 

@Override

publicvoidonStartTrackingTouch(SeekBarseekBar){

System.out.println("ONstrat");

}

 

@Override

publicvoidonStopTrackingTouch(SeekBarseekBar){

System.out.println("OnStop");

}

}

@Override

publicbooleanonCreateOptionsMenu(Menumenu){

//Inflatethemenu;thisaddsitemstotheactionbarifitispresent.

getMenuInflater().inflate(R.menu.menu_main,menu);

returntrue;

}

 

@Override

publicbooleanonOptionsItemSelected(MenuItemitem){

//Handleactionbaritemclickshere.Theactionbarwill

//automaticallyhandleclicksontheHome/Upbutton,solong

//asyouspecifyaparentactivityinAndroidManifest.xml.

intid=item.getItemId();

 

//noinspectionSimplifiableIfStatement

if(id==R.id.action_settings){

returntrue;

}

 

returnsuper.onOptionsItemSelected(item);

}

}

xml代码:

<?xmlversion="1.0"encoding="utf-8"?>

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"android:layout_height="match_parent">

 

<SeekBar

android:id="@+id/seekbar"

android:layout_width="match_parent"

android:layout_height="wrap_content"

 

/>

<Button

android:id="@+id/but"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="看看"

android:layout_below="@id/seekbar"

/>

 

</RelativeLayout>

 

 

 

 

 

 

 

 

0 0