PickerView是什么
仿iOS的PickerView控件,带有3D圆弧效果,并封装了时间选择和选项选择这两种选择器。
WheelView —— 基础控件
带有3D圆弧效果。
支持文字、颜色、大小设置。
支持背景颜色设置。
支持item的分隔线设置。
支持item间距设置。
支持设置是否循环。
WheelView的使用
1、依赖
implementation 'com.contrarywind:Android-PickerView:4.1.9'//wheelview
2、xml中的布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.contrarywind.view.WheelView
android:layout_width="match_parent"
android:layout_height="300dp"
android:id="@+id/wheel"></com.contrarywind.view.WheelView>
</LinearLayout>
3、Activity中的代码
package com.example.day11_wheelview;
import android.os.Bundle;
import android.util.Log;
import androidx.appcompat.app.AppCompatActivity;
import com.bigkoo.pickerview.adapter.ArrayWheelAdapter;
import com.contrarywind.listener.OnItemSelectedListener;
import com.contrarywind.view.WheelView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
private WheelView wheel;
private ArrayWheelAdapter<String> adapter;
private List<String> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
wheel.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(int index) {
Log.i(TAG, "onItemSelected: "+list.get(index));
}
});
list = new ArrayList<>();
list.add("北国风光");
list.add("万里雪飘");
list.add("千鹤");
adapter = new ArrayWheelAdapter<>(list);
wheel.setAdapter(adapter);
}
private void initView() {
wheel = findViewById(R.id.wheel);
}
}
效果图
OptionsPickerView —— 选项选择器
支持一、二、三级联动数据。
支持一、二、三级不联动数据。
支持自定义布局。
支持自定义标题栏。
支持“省,市,区”等选项的单位(label)显示、隐藏和自定义。
支持dialog 模式显示。
支持自定义设置容器。
支持实时回调监听。
联动数据支持切换Item时,还原为第一项。
OptionsPickerView的使用
activity中的代码
final List<String> option1_item=new ArrayList<>();
option1_item.add("射雕英雄传");
option1_item.add("神雕侠侣");
List<String> option2_01=new ArrayList<>();
option2_01.add("郭靖");
option2_01.add("黄蓉");
option2_01.add("杨铁心");
List<String> option2_02=new ArrayList<>();
option2_02.add("小龙女");
option2_02.add("杨过");
option2_02.add("大雕");
final List<List<String>> option2_item=new ArrayList<>();
option2_item.add(option2_01);
option2_item.add(option2_02);
OptionsPickerView<String> pickerView = new OptionsPickerBuilder(this, new OnOptionsSelectListener() {
@Override
public void onOptionsSelect(int options1, int options2, int options3, View v) {
String tx = option1_item.get(options1) + option2_item.get(options1).get(options2);
Toast.makeText(MainActivity.this, "" + tx, Toast.LENGTH_SHORT).show();
}
}).build();
pickerView.setPicker(option1_item,option2_item);
pickerView.show();
效果图
TimePickerView —— 时间选择器
支持选择年、月、日的范围。
支持年月日时分秒显示。
支持设置当前默认时间。
支持自定义布局。
支持自定义标题栏。
支持“年,月,日,时,分,秒”等选项的单位(label)显示、隐藏和自定义。
支持dialog 模式显示。
支持自定义设置容器。
支持实时回调监听。
TimePickerView 的使用
activity中的代码
final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
new TimePickerBuilder(this, new OnTimeSelectListener() {
@Override
public void onTimeSelect(Date date, View v) {
String format = simpleDateFormat.format(date);
Toast.makeText(MainActivity.this, ""+format, Toast.LENGTH_SHORT).show();
}
}).build().show();
效果图