Android中seekbar拖动进度条调节透明度和ratingbar星级评分实现

上期简单讲解了Android高级UI组件progressbar的加载案例,今天来浅浅引来seekbar拖动进度条实现调节图片的透明度和常见的星条评论效果。

透明度的调节以及对五星好评的词汇我们在生活中在常见不过了,那么在软件中是怎么实现的呢,今天熊小白我就带你们简单了解一下。

针对我下面贴的代码而言,我进度条方面实现了拖动进度条调节图片的透明度,和点击不同数目的星星可以在星星右面的指定位置显示分数

拖动进度条来实现透明度的调节要继承progressbar,实现透明度就是用到seekbar监听方法里面重写的onProgressChanged添加setimageviewalpha(progress)因为seekbar重写的方法有三个,另外两个onStartTrackingTouch和onStopTrackingTouch是对于开始和停止触摸的行为结果,这一点对于该功能不需添加任何代码也可,但在后期的音乐播放器中滑动进度条改变音乐的进度需要在onstoptrackingtouch则需要写入相关的Java代码了

星条评论引入rating控件,在ratingbar的监听事件里已经给你获得了星的数目,只需要将以获得的星数放置即可,另外我在下面贴了一些xml中rating的相关属性,以供参考

android:isIndicator:是否用作指示,用户无法更改,默认false
android:numStars:显示多少个星星,必须为整数
android:rating:默认评分值,必须为浮点数
android:stepSize: 评分每次增加的值,必须为浮点数

代码:

public class MainActivity extends AppCompatActivity {
private SeekBar seekBar;
private ImageView imageView;
private RatingBar ratingBar;
private TextView txt;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageView=findViewById(R.id.image);
        seekBar=findViewById(R.id.seekbar);
        ratingBar=findViewById(R.id.ratingbar);
        txt=findViewById(R.id.txt);
       seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                imageView.setImageAlpha(progress);
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });
//        String rating= String.valueOf(ratingBar.getRating());
//        txt.setText(rating);
        ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
            @Override
            public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
                //Toast.makeText(MainActivity.this, "rating:" + String.valueOf(rating), Toast.LENGTH_SHORT).show();
                txt.setText(String.valueOf(rating));
            }
        });

    }
}

猜你喜欢

转载自blog.csdn.net/Abtxr/article/details/125847051