天天看點

android滾輪選擇位址,Android開源項目滾輪選擇器WheelPicker的基本用法總結

Android開源項目滾輪選擇器WheelPicker的基本用法總結

2020年07月17日

| 萬仟網IT程式設計

 | 

android滾輪選擇位址,Android開源項目滾輪選擇器WheelPicker的基本用法總結

我要評論

1. 添加依賴在Project的build.gradle中,添加maven { url ‘https:jitpack.io’}在相關Module(一般是Module:app)的build.gradle中,添加implementation 'cn.aigestudio.wheelpicker:WheelPicker:1.1.3'注意不是 implemention ‘com.github.open-android:WheelPicker:v1.0.0’,那篇文章(即百度WheelPicker排第一的簡書

1. 添加依賴

在Project的build.gradle中,添加maven { url 'https:jitpack.io'}

android滾輪選擇位址,Android開源項目滾輪選擇器WheelPicker的基本用法總結

在相關Module(一般是Module:app)的build.gradle中,添加implementation 'cn.aigestudio.wheelpicker:WheelPicker:1.1.3'

注意不是 implemention ‘com.github.open-android:WheelPicker:v1.0.0’,那篇文章(即百度WheelPicker排第一的簡書那篇)我個人懷疑有高度借鑒的行為。

android滾輪選擇位址,Android開源項目滾輪選擇器WheelPicker的基本用法總結

2. 基本用法

在xml檔案中設定WheelPicker。

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"

android:orientation="vertical">

android:id="@+id/wp"

android:layout_width="match_parent"

android:layout_height="200dp"

android:background="#ffffff"

app:wheel_item_text_size="16sp"

/>

android:id="@+id/btn"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="btn1"

android:onClick="onClick"/>

設定一個實體類,模拟實際開發場景。

public class People {

private String name;

public People(String name){

this.name = name;

}

public String getName() {

return name;

}

@Override

public String toString() {

return "People{" +

"name='" + name + '\'' +

'}';

}

}

然後在相關的java檔案中調用(這裡是demo,是以是MainActivity)

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private static final String TAG = "MainActivity";

WheelPicker wheelPicker;

List list = new ArrayList<>();

@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

wheelPicker = findViewById(R.id.wp);

initData();

initWP(); // 必用的方法

//initWPShow(); //改變各種顯示狀态的方法

//initWPText(); //Text相關的顯示狀态

}

private void initData() {

list.add(new People("張三"));

list.add(new People("李四"));

list.add(new People("王五"));

list.add(new People("劉七"));

list.add(new People("鄧八"));

list.add(new People("趙九"));

}

private void initWP() {

// 通過setData方式設定資料集,不過此方法設定的資料在顯示時都會被自動轉換為String

// 如果資料傳入的是一個類的集合,那顯示時就會直接調用他的toString方法,此時就要重寫toString。

wheelPicker.setData(list);

//選擇監聽器,會監聽被選中的item(滑動停止後),需要自己做強制類型轉換

wheelPicker.setOnItemSelectedListener(new WheelPicker.OnItemSelectedListener() {

@Override

public void onItemSelected(WheelPicker picker, Object data, int position) {

Log.i(TAG, "onItemSelected: " + (People)data + " " + position);

}

});

//擷取目前的item,一樣要做強制類型轉換

People people = (People) wheelPicker.getData().get(wheelPicker.getCurrentItemPosition());

Log.i(TAG, "initWP: " + people);

//滾輪監聽器,滑動狀态監聽

wheelPicker.setOnWheelChangeListener(new WheelPicker.OnWheelChangeListener() {

@Override

public void onWheelScrolled(int offset) {

// 滑動距離,初始狀态(即一開始position=0時)為0

// 資料往上滑(即手往下滑)為正數,往下滑為負數

Log.i(TAG, "onWheelScrolled: " + offset);

}

@Override

public void onWheelSelected(int position) {

// 等同于選擇監聽器的onItemSelected,停止滑動時所在的position

Log.i(TAG, "onWheelSelected: " + position);

}

@Override

public void onWheelScrollStateChanged(int state) {

// 滾動狀态監聽器,0表示沒有在滑動,1表示觸屏造成的滑動,

// 2表示停止觸屏時造成的滑動(停止觸屏後的回彈)

Log.i(TAG, "onWheelScrollStateChanged: " + state);

}

});

}

@Override

public void onClick(View v) {

switch (v.getId()){

case R.id.btn:

//強制切換到標明的item,第二個參數表示跳轉是否顯示動畫,不傳時預設為true

wheelPicker.setSelectedItemPosition(3, true);

//wheelPicker.setSelectedItemPosition(3);

break;

}

}

}

3. 設定顯示效果

常用的顯示效果如下:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private static final String TAG = "MainActivity";

WheelPicker wheelPicker;

List list = new ArrayList<>();

@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

wheelPicker = findViewById(R.id.wp);

initData();

initWP(); // 必用的方法

initWPShow(); //改變各種顯示狀态的方法

initWPText(); //Text相關的顯示狀态

}

private void initData() {

//省略剛才出現過的代碼

}

private void initWP() {

//省略剛才出現過的代碼

}

private void initWPShow() {

// 設定資料是否循環顯示

wheelPicker.setCyclic(true);

// 檢視是否循環顯示

wheelPicker.isCyclic();

//設定是否有訓示器,設定後選中項的上下會用線框柱

wheelPicker.setIndicator(true);

wheelPicker.setIndicatorColor(0xFF123456); //16進制

wheelPicker.setIndicatorSize(3); //機關是px

// 設定是否有幕布,設定後選中項會被指定的顔色覆寫,預設false

wheelPicker.setCurtain(false);

wheelPicker.setCurtainColor(0xFF777777);

// 設定是否有空氣感,設定後上下邊緣會漸變為透明,預設false

wheelPicker.setAtmospheric(true);

// 設定是否有卷曲感,不能微調卷曲幅度,預設false

wheelPicker.setCurved(true);

// 設定item的排列,左中右,預設中

wheelPicker.setItemAlign(WheelPicker.ALIGN_CENTER);

}

@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)

private void initWPText() {

// 設定選中項的字色,16進制(0xFF+16進制的rgb)

wheelPicker.setSelectedItemTextColor(0xFF000000);

// 設定字型大小,字型顔色

wheelPicker.setItemTextColor(0xFF888888);

wheelPicker.setItemTextSize(30); // 機關px,需要自己做sp轉px,也可以在xml中直接設定sp

// 設定字型排列方式,同普通textView,一般兩行以上的資料才有效果

wheelPicker.setTextAlignment(TEXT_ALIGNMENT_TEXT_START);

}

}

參考材料

還有WheelPicker的源碼。

本文位址:https://blog.csdn.net/qq_41872247/article/details/107364456

版權聲明:本文内容由網際網路使用者貢獻,該文觀點僅代表作者本人。本站僅提供資訊存儲服務,不擁有所有權,不承擔相關法律責任。

如發現本站有涉嫌抄襲侵權/違法違規的内容, 請發送郵件至 [email protected] 舉報,一經查實将立刻删除。

相關文章:

java continue break 制作簡單聊天室程式,屏蔽不文明語言,顯示每句話聊天時間

package com.s...

前言 同源政策:判斷是否是同源的,主要看這三點,協定,ip,端口。 同源政策就是浏覽器出于網站安全性的考慮,限制不同源之間的資源互相通路的一種政策。...

spring profile 多環境配置管理

現象

如果在開發時進行一些資料庫測試,...

java線程會議如下三種方式結束,結束後就處于死亡狀态

1、run()或者call()方法執行完成,線程正常結束;

2、線程抛出...

面向對象: 程式由對象構成,每個對象包含對使用者公開的特定功能部分(public)和隐藏實作部分(private)。 類: 構造對象的模闆 對象: 對...

AOP簡介 AOP (Aspect Oriented Programing) 稱為:面向切面程式設計,它是一種程式設計思想。AOP 是 OOP(面向對象程式設計...

android滾輪選擇位址,Android開源項目滾輪選擇器WheelPicker的基本用法總結

簡介該文檔主要介紹以nacos為配置中心,實作spring cloud gateway 實作動态路由的功能。spring cloud gateway啟動時候,就...

添加此plugin到項目的pom.xml中

...

一.理論準備 希爾排序(shell sort)是插入排序的一種,是針對直接插入排序算法的改進,是将整個無序列分割成若幹小的...

android滾輪選擇位址,Android開源項目滾輪選擇器WheelPicker的基本用法總結

在上一篇部落格中分析了springBoot啟動流程,大體的輪廓隻是冰山一角。今天就來看一下springBoot的亮點功能:自動化裝配功能。 先從@Sp...

網友評論

android滾輪選擇位址,Android開源項目滾輪選擇器WheelPicker的基本用法總結

驗證碼:

android滾輪選擇位址,Android開源項目滾輪選擇器WheelPicker的基本用法總結