SeekBar . RatingBar

1}SeekBar
效果如图:它比ProgressBar多了一个拉伸的功能,播放器上常见

1) 在布局文件中声明 SeekBar

<SeekBar
	android:id="@+id/seekbarId"
	android:layout_width="fill_parent"
	android:layout_height="wrap_content"
	/>
2) 定义 个OnSeekBarChangeListener
//定义一个监听器,该监听器负责监听进度条状态的改变
    private class SeekBarListener implements SeekBar.OnSeekBarChangeListener{
    	//当进度条的进度发生变化时,会调用该方法
		@Override
		public void onProgressChanged(SeekBar seekBar, int progress,
				boolean fromUser) {
			System.out.println(progress);
		}
		//当用户开始滑动滑块时,调用该方法
		@Override
		public void onStartTrackingTouch(SeekBar seekBar) {
			System.out.println("start--->" + seekBar.getProgress());
		}
		//当用户结束对滑块的滑动时,调用该方法
		@Override
		public void onStopTrackingTouch(SeekBar seekBar) {
			System.out.println("stop--->" + seekBar.getProgress());
		}
    	
    }
3) 为SeekBar绑定监听器

seekBar.setOnSeekBarChangeListener(new SeekBarListener());

更多细节可以查看这篇文章:Android学习:SeekBar实现音量调节

2} RatingBar
效果如图:评分用的,如淘宝上评分

1) 在布局文件中声明 RatingBar

<RatingBar
	android:id="@+id/ratingbarId"
	android:layout_height="wrap_content"
	android:layout_width="wrap_content"
	android:numStars="5"
	android:stepSize="1.0"
	/>
android:numStars="5"     总共几颗星
android:stepSize="1.0"    拖动时每次前进多少
2)定义一个OnRatingBarChangeListener
private class RatingBarListener implements RatingBar.OnRatingBarChangeListener{
		@Override
		public void onRatingChanged(RatingBar ratingBar, float rating,
				boolean fromUser) {
			System.out.println("rating--->" + rating);
		}
    }
3) 为RatingBar设置监听器
ratingBar.setOnRatingBarChangeListener(new RatingBarListener());


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我知道了。下面是您所需要的代码: 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、付费专栏及课程。

余额充值