一、RatingBar:星评分
<RatingBar
android:id="@+id/ratingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:rating="5"/>//初始化为几颗星
mRatingBar = findViewById(R.id.ratingBar);
float rating = mRatingBar.getRating();//获取用户的评分
二、SeekBar:一个滑动条去控制图片的透明度
<SeekBar
android:id="@+id/seekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="255"//最大为255
android:progress="255"/>//进度条最大为255
mImageView = findViewById(R.id.image);
mSeekBar = findViewById(R.id.seekBar);
mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
mImageView.setImageAlpha(progress);//安卓最低版本需要设置为17或以上,否则会报错
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
三、TimePicker:时间选择器
<TimePicker
android:id="@+id/timePicker"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
TimePicker tp = findViewById(R.id.timePicker);
tp.setIs24HourView(true);//设置为24小时制
//监听你选择的时间
tp.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker timePicker, int hourOfDay, int minute) {
String str = hourOfDay+"时"+minute+"分";
Toast.makeText(TimePickerActivity.this,str,Toast.LENGTH_LONG).show();
}
});
四、Chronometer:时间计时器
<Chronometer
android:id="@+id/chronometer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFF00"/>
Chronometer ch;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chronometer);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);//全屏显示
ch = findViewById(R.id.mChronometer);
ch.setBase(SystemClock.elapsedRealtime());//设置计时器的起始时间
ch.setFormat("%s");//设置时间格式
ch.start();//指定开始计时
//为计时器绑定事件监听器,当计时器改变时触发该监听器
ch.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
if(SystemClock.elapsedRealtime()-ch.getBase()>60){
ch.stop();//指定停止计时
}
}
});
}
拓展:做一个倒计时器
请看《android使用Chronometer做倒计时器》这篇文章
五、DatePicker:日期选择器
<DatePicker
android:id="@+id/datePicker"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerInParent="true">
</DatePicker>
int year,month,day;
DatePicker mDatePicker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
mDatePicker = findViewById(R.id.datePicker);
Calendar calendar = Calendar.getInstance();
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH);
day = calendar.get(Calendar.DAY_OF_MONTH);
mDatePicker.init(year, month, day, new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
SecondActivity.this.year = year;
SecondActivity.this.month = monthOfYear;
SecondActivity.this.day = dayOfMonth;
show(year,monthOfYear,dayOfMonth);
}
});
}
private void show(int year,int month,int day){
String str = year + "年"+(month+1)+"月"+day+"日";
Toast.makeText(SecondActivity.this,str,Toast.LENGTH_LONG).show();
}
ImageSwitcher:图片切换器
<ImageSwitcher
android:id="@+id/imageSwitcher"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
/>
private int[] arrayPicture = new int[]{R.drawable.bg,R.drawable.bg2,R.drawable.bg3,R.drawable.bg4
,R.drawable.bg5,R.drawable.bg6,R.drawable.bg7,R.drawable.bg8};//为切换准备图片
private ImageSwitcher mImageSwitcher;//图片切换器
private int index;//图片索引
private float touchDownX;//手指触摸时
private float touchUpX;//手指抬起时
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_showpicture);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);//全屏显示
mImageSwitcher = findViewById(R.id.imageSwitcher);
//视图工厂
mImageSwitcher.setFactory(new ViewSwitcher.ViewFactory() {
@Override
public View makeView() {
ImageView imageView = new ImageView(ShowPictureActivity.this);//用于显示图片
imageView.setImageResource(arrayPicture[index]);
return imageView;
}
});
//触摸监听
mImageSwitcher.setOnTouchListener(new View.OnTouchListener() {
@Override
//判断手指的动作
public boolean onTouch(View view, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN){//手指按下
touchDownX = event.getX();
return true;
}else if(event.getAction() == MotionEvent.ACTION_UP){//手指抬起
touchUpX = event.getX();
if (touchUpX-touchDownX>100){
index=index==0?arrayPicture.length-1:index-1;
mImageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(ShowPictureActivity.this,R.anim.slide_out_right));//设置滑出动画
mImageSwitcher.setInAnimation(AnimationUtils.loadAnimation(ShowPictureActivity.this,R.anim.slide_in_left));//设置滑入动画
mImageSwitcher.setImageResource(arrayPicture[index]);
}else if(touchDownX-touchUpX>100){
index=index==arrayPicture.length-1?0:index+1;
mImageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(ShowPictureActivity.this,R.anim.slide_out_left));
mImageSwitcher.setInAnimation(AnimationUtils.loadAnimation(ShowPictureActivity.this,R.anim.slide_in_right));
mImageSwitcher.setImageResource(arrayPicture[index]);
}
return true;
}
return false;
}
});
}
动画资源文件:slide_in_left,其他的同理去做
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="1000"
android:fromXDelta="-100%p"
android:toXDelta="0"/>
</set>
网友评论