上期简单讲解了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)); } }); } }