Android_UI基础控件3

一、SeekBar可拖拽进度条

public class MainActivity extends AppCompatActivity {
    private SeekBar seekBar;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        seekBar = findViewById(R.id.seekBar);
        //设置进度条最大值
        seekBar.setMax(100);
        //设置进度条当前值
        seekBar.setProgress(30);
        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                //在进度发生变化时被触发
                //1、当前绑定的seekbar对象
                //2、当前进度
                //3、是否为用户手动触发
                Log.i("progress","变化"+seekBar.getProgress()+"");
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
                //在开始拖拽进度条时被触发
                Log.i("progress","开始"+seekBar.getProgress()+"");//获取到当前进度条的进度
            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                //在结束拖拽时被触发
                Log.i("progress","结束"+seekBar.getProgress()+"");
            }
        });
    }
}
<SeekBar
        android:id="@+id/seekBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />

二、ProgressBar进度条

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="默认" />
    <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="超大号圆形"/>
    <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="?android:attr/progressBarStyleLarge"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="小号圆形"/>
    <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="?android:attr/progressBarStyleSmall"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="长条方向-长方形" />
    <ProgressBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="100"
        android:progress="30"
        android:secondaryProgress="50"

        style="?android:attr/progressBarStyleHorizontal"/>



</LinearLayout>

在java代码中设置max值为

progressBar.setMax(100);

进度条累加

progressBar.incrementProgressBy(20);
progressBar.incrementSecondaryProgressBy(20);

三、RatingBar星级进度条

<RatingBar
        android:id="@+id/rb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:isIndicator="false"
        android:numStars="5"
        android:stepSize="0.5"/>

isIndicator 是否允许用户操作

numStars 星星个数

stepSize 每次操作单位刻度

public class MainActivity extends AppCompatActivity {
private RatingBar ratingBar;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ratingBar = findViewById(R.id.rb);
        ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
            @Override
            public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
                //当前绑定的RatingBar对象
                //当前rating评分的进度
                //是否由用户触发
                System.out.println("当前ratingBar:评分"+rating+" 是否来自用户:"+fromUser+" 每次评分刻度:"+ratingBar.getStepSize());
            }
        });
    }
}

四、DatePicker和TimePicker 日期和时间选择器

public class MainActivity extends AppCompatActivity {
private TimePicker timePicker;
private DatePicker datePicker;
private TextView textView;
private int Year,Month,Day,Hour,Minute;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        getCurrentTime();
        setPicker();
    }

    private void setPicker() {
        //设置为24小时制
        timePicker.setIs24HourView(true);
        //设置时间为当前时间
        timePicker.setCurrentHour(Hour);//获取当前系统时间
        timePicker.setCurrentMinute(Minute);
        timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
            @Override
            public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
                //时间选择器发生改变时触发
                System.out.println("From TimePicker:"+hourOfDay+":"+minute);
                Hour=hourOfDay;
                Minute = minute;
                textView.setText("当前日期+时间:"+Year+"/"+Month+"/"+Day+" "+Hour+":"+Minute);
            }
        });
        datePicker.init(Year, Month, Day, new DatePicker.OnDateChangedListener() {
            @Override
            public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                System.out.println("From DatePicker:"+year+"/"+(monthOfYear+1)+"/"+dayOfMonth);
                Year=year;
                Month=(monthOfYear+1);
                Day=dayOfMonth;
                textView.setText("当前日期+时间:"+Year+"/"+Month+"/"+Day+" "+Hour+":"+Minute);
//国外计时法月份从0开始所以要+1
            }
        });

    }

    private void getCurrentTime() {
        //获取系统当前时间
        Calendar calendar = Calendar.getInstance();
        Year = calendar.get(Calendar.YEAR);
        Month = calendar.get(Calendar.MONTH);
        Day = calendar.get(Calendar.DAY_OF_MONTH);
        Hour = calendar.get(calendar.HOUR);
        Minute = calendar.get(Calendar.MINUTE);

    }

    private void initView() {
        timePicker = findViewById(R.id.tp);
        datePicker = findViewById(R.id.dp);
        textView = findViewById(R.id.tv);

    }
}

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    >
<ScrollView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    <TimePicker
        android:id="@+id/tp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

    </TimePicker>
    <DatePicker
        android:id="@+id/dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    </DatePicker>
    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="显示当前日期"/>
    </LinearLayout>
</ScrollView>
</LinearLayout>

猜你喜欢

转载自blog.csdn.net/castanea/article/details/80962274
今日推荐