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