android之ProgressBar及其子类SeekBar和RatingBar(二)

效果如图所示:

这里简单的写了一个progressBar,seekBar,RatingBar的代码。
布局activity_main:

<!-- <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> -->


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">

    <ProgressBar  android:layout_width="match_parent" android:layout_height="wrap_content" style="@android:style/Widget.ProgressBar.Horizontal" android:max="50" android:progress="10" android:secondaryProgress="20" android:progressDrawable="@drawable/progress_bar" android:id="@+id/bar"/> 
    <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="增加" android:onClick="myadd"/>
    <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="减少" android:onClick="myMinute"/>
   <!-- <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/msg" android:src="@drawable/bg"/> -->

    <SeekBar  android:id="@+id/sb" style="@android:style/Widget.SeekBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:max="100" android:progress="10" android:progressDrawable="@drawable/progress_bar" android:thumb="@drawable/ic_launcher" />

    <RatingBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:numStars="3" android:stepSize="1" android:rating="1" android:id="@+id/ra"/>



</LinearLayout>
<!-- </ScrollView> -->

MainActivity:

package com.syy.progressbarapp;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.RatingBar;
import android.widget.RatingBar.OnRatingBarChangeListener;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.Toast;

public class MainActivity extends Activity {
    private ImageView msg;
    private ProgressBar bar;
    private SeekBar sb;
    private int cp;
    private RatingBar ra;
    public void myadd(View view){
        //bar.incrementProgressBy(10);
        //bar.setProgress(bar.getMax());
        cp+=10;
        if(cp>bar.getMax()){
            cp=0;
        }
        bar.setProgress(cp);
    }
    public void myMinute(View view){
        //bar.incrementProgressBy(-10);
        //bar.setProgress(bar.getMax());
        cp-=10;
        if(cp<0){
            cp=0;
        }
        bar.setProgress(cp);
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
        setContentView(R.layout.activity_main);
        setProgressBarIndeterminateVisibility(true);
    bar=(ProgressBar)findViewById(R.id.bar);
    //msg=(ImageView)findViewById(R.id.msg);
    sb=(SeekBar)findViewById(R.id.sb);

    sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
        //结束拖动的时候触发该方法
        @Override
        public void onStopTrackingTouch(SeekBar bar) {
            // TODO Auto-generated method stub

        }
        //开始拖动的时候触动该方法
        @Override
        public void onStartTrackingTouch(SeekBar bar) {
            // TODO Auto-generated method stub

        }   
        //只能进度值发生改变触发该方法
        //第二个参数:事件源的当前进度值
        //第三个参数:数据的改变是否来自于用户的
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromuser) {
            // TODO Auto-generated method stub
    //msg.setAlpha(progress);
        if(fromuser)
            bar.setProgress(progress);
        }
    });

    ra=(RatingBar)findViewById(R.id.ra);
    ra.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
        //第一个参数是事件源
        //第二个是分数

        @Override
        public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromuser) {
            // TODO Auto-generated method stub
            Toast.makeText(MainActivity.this, "分数为:"+rating, 0).show();
        }
    });

    }
    //按下回退按钮时触发该方法
    @Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        //弹出对话框
        //第一步:创建AlertDialog.Builder对象
        AlertDialog.Builder bulder=new AlertDialog.Builder(this);
        //第二步:设置图标区
        bulder.setIcon(R.drawable.ic_launcher);
        //第三步:设置标题区
        bulder.setTitle("提示");
        //第四步:设置内容
        bulder.setMessage("是否推出程序");
        //第五步:设置按钮区
        bulder.setPositiveButton("确实", new OnClickListener() {

            @Override
            public void onClick(DialogInterface arg0, int arg1) {
                // TODO Auto-generated method stub
                //推出应用程序
                System.exit(0);
            }
        });
        bulder.setNegativeButton("取消", null);


        //设置不可被取消
        bulder.setCancelable(false);
        //第六步:创建对话框对象
        AlertDialog dialog=bulder.create();
        dialog.show();

    }
}

没什么技术含量,写下来供以后自己方便查找。。。

代码在这里:

代码链接

你可能感兴趣的:(android,prigressBa)