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();

    }
}

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

代码在这里:

代码链接

好的,我知道了。下面是您所需要的代码: XML文件: ``` <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <ImageView android:id="@+id/imageView" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/ic_launcher_background" /> <SeekBar android:id="@+id/seekBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:max="255" android:layout_alignParentBottom="true"/> </RelativeLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center"> <ProgressBar android:id="@+id/progressBar" style="?android:attr/progressBarStyleHorizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="50dp" android:layout_marginRight="50dp" android:layout_weight="1" android:max="100" android:progress="0" /> <RatingBar android:id="@+id/ratingBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:numStars="5" android:stepSize="1.0" /> </LinearLayout> </LinearLayout> ``` Java文件: ``` public class MainActivity extends AppCompatActivity { private ImageView imageView; private SeekBar seekBar; private ProgressBar progressBar; private RatingBar ratingBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView = findViewById(R.id.imageView); seekBar = findViewById(R.id.seekBar); progressBar = findViewById(R.id.progressBar); ratingBar = findViewById(R.id.ratingBar); seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { imageView.setAlpha((float) progress / 255); } @Override public void onStartTrackingTouch(SeekBar seekBar) {} @Override public void onStopTrackingTouch(SeekBar seekBar) {} }); ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() { @Override public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { Toast.makeText(MainActivity.this, "Rating: " + rating, Toast.LENGTH_SHORT).show(); } }); } } ``` 运行效果: ![image](https://user-images.githubusercontent.com/38335321/122733356-37ccff00-d2a8-11eb-9a0f-3c9843dc5d5a.png) 希望这可以帮助到您!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值