欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android自定義wheelview隨機(jī)選號(hào)效果

 更新時(shí)間:2016年12月29日 14:12:29   作者:JH_Manny  
這篇文章主要介紹了Android自定義wheelview隨機(jī)選號(hào)效果,利用wheelview實(shí)現(xiàn)滾動(dòng)隨機(jī)選擇號(hào)碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

先看下利用wheelview實(shí)現(xiàn)滾動(dòng)隨機(jī)選擇號(hào)碼效果:

直接上代碼

首頁(yè)就是dialog顯示不在描述
主要看dialog代碼

package com.yskj.jh.wheeldemo;

import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.yskj.jh.wheeldemo.wheel.adapters.AbstractWheelTextAdapter;
import com.yskj.jh.wheeldemo.wheel.views.OnWheelChangedListener;
import com.yskj.jh.wheeldemo.wheel.views.OnWheelScrollListener;
import com.yskj.jh.wheeldemo.wheel.views.WheelView;

import java.util.ArrayList;
import java.util.List;


/**
 * Created by Administrator on 2016/4/7.
 */


public class SnatchDialog extends Dialog implements View.OnClickListener, OnWheelChangedListener {

 private Context context;

 private TextView tvNumberL, tvNumberC, tvNumberR;

 //數(shù)字控件
 private WheelView wvLeft;
 private WheelView wvCenter;
 private WheelView wvRight;

 //數(shù)字集合
 private List<String> list = new ArrayList<String>();

 //選中的數(shù)字信息
 private String strLeft;
 private String strCenter;
 private String strRight = "1";

 private TextView btnSure;//確定按鈕
 private ImageView btnCancle;//取消按鈕
 private TextView btnRandom;//隨機(jī)

 //回調(diào)函數(shù)
 private OnSnatchCListener onSnatchCListener;

 private NumberAdapter adapter;

 //顯示文字的字體大小
 private int maxsize = 26;
 private int minsize = 18;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.dialog_snatch);
 initView();
 }

 public SnatchDialog(Context context){
 super(context, R.style.ShareDialog);
 this.context = context;
 }
 private void initView() {

 tvNumberL = (TextView) findViewById(R.id.tv_number1);
 tvNumberC = (TextView) findViewById(R.id.tv_number2);
 tvNumberR = (TextView) findViewById(R.id.tv_number3);

 for (int i = 0; i < 10; i++) {
  list.add(i + "");
 }

 wvLeft = (WheelView) findViewById(R.id.wv_snatch_left);
 wvCenter = (WheelView) findViewById(R.id.wv_snatch_center);
 wvRight = (WheelView) findViewById(R.id.wv_snatch_right);
 btnSure = (TextView) findViewById(R.id.tv_sure);
 btnCancle = (ImageView) findViewById(R.id.img_cancel);
 btnRandom = (TextView) findViewById(R.id.tv_random);

 btnSure.setOnClickListener(this);
 btnCancle.setOnClickListener(this);
 btnRandom.setOnClickListener(this);

 wvLeft.addChangingListener(this);
 wvCenter.addChangingListener(this);
 wvRight.addChangingListener(this);

 wvLeft.setCyclic(true);
 wvRight.setCyclic(true);
 wvCenter.setCyclic(true);

 wvLeft.setVisibleItems(3);

 wvCenter.setVisibleItems(3);

 wvRight.setVisibleItems(3);

 wvLeft.addScrollingListener(new OnWheelScrollListener() {
  @Override
  public void onScrollingStarted(WheelView wheel) {

  }

  @Override
  public void onScrollingFinished(WheelView wheel) {
  String currentText = (String) adapter.getItemText(wheel.getCurrentItem());
  strLeft = (String) adapter.getItemObject(wheel.getCurrentItem());
  setTextViewSize(strLeft, adapter);
  tvNumberL.setText(strLeft);
  }
 });
 wvCenter.addScrollingListener(new OnWheelScrollListener() {
  @Override
  public void onScrollingStarted(WheelView wheel) {

  }

  @Override
  public void onScrollingFinished(WheelView wheel) {
  String currentText = (String) adapter.getItemText(wheel.getCurrentItem());
  strCenter = (String) adapter.getItemObject(wheel.getCurrentItem());
  setTextViewSize(strCenter, adapter);
  tvNumberC.setText(strCenter);
  }
 });
 wvRight.addScrollingListener(new OnWheelScrollListener() {
  @Override
  public void onScrollingStarted(WheelView wheel) {

  }

  @Override
  public void onScrollingFinished(WheelView wheel) {
  String currentText = (String) adapter.getItemText(wheel.getCurrentItem());
  strRight = (String) adapter.getItemObject(wheel.getCurrentItem());
  setTextViewSize(strRight, adapter);
  tvNumberR.setText(strRight);
  }
 });
 /**
  * 設(shè)置適配器
  */
 adapter = new NumberAdapter(context, list, 0, maxsize, minsize);
 wvLeft.setViewAdapter(adapter);
 wvLeft.setCurrentItem(0);

 wvCenter.setViewAdapter(adapter);
 wvCenter.setCurrentItem(0);
 wvRight.setViewAdapter(adapter);
 wvRight.setCurrentItem(1);

 }

 @Override
 public void onChanged(WheelView wheel, int oldValue, int newValue) {

 }


 public interface OnSnatchCListener {
 void onClick(String strLeft, String strCenter, String strRight);
 }

 @Override
 public void onClick(View v) {

 if (v == btnSure) {
  if (onSnatchCListener != null) {
  onSnatchCListener.onClick(strLeft, strCenter, strRight);
  }
  if (strLeft == null) {
  strLeft = "0";
  }
  if (strCenter == null) {
  strCenter = "0";
  }
  if (strRight == null) {
  strRight = "0";
  }
  if ((strLeft + strCenter + strRight).equals("000")) {
  Toast.makeText(context, "不能為0", Toast.LENGTH_SHORT).show();
  } else {
  if (Integer.parseInt(strLeft + strCenter + strRight) > 0 && Integer.parseInt(strLeft + strCenter + strRight) <= 999) {
  }
  }
 }
 if (v == btnCancle) {
  dismiss();
 }
 if (v == btnRandom) {
  int a = (int) (Math.random() * 5000 + 1);
  int b = (int) (Math.random() * 5000 + 1);
  int c = (int) (Math.random() * 5000 + 1);
  wvLeft.scroll(a, 500);
  wvRight.scroll(b, 500);
  wvCenter.scroll(c, 500);

 }
 }


 //適配器
 public class NumberAdapter extends AbstractWheelTextAdapter {
 List<String> list;

 protected NumberAdapter(Context context, List<String> list, int currentItem, int maxsize, int minsize) {
  super(context, R.layout.item_birth_year, NO_RESOURCE, currentItem, maxsize, minsize);
  this.list = list;
  setItemTextResource(R.id.tempValue);
 }

 @Override
 public View getItem(int index, View cachedView, ViewGroup parent) {
  View view = super.getItem(index, cachedView, parent);
  return view;
 }

 @Override
 protected CharSequence getItemText(int index) {
  if (list != null && list.size() > 0) {
  return list.get(index);
  }
  return "";
 }

 @Override
 protected Object getItemObject(int index) {
  if (list != null && list.size() > 0) {
  return list.get(index);
  }
  return null;
 }

 @Override
 public int getItemsCount() {
  if (list != null) {
  return list.size();
  }
  return 0;
 }
 }

 public void setTextViewSize(String curriteItemText, NumberAdapter adapter) {
 ArrayList<View> arrayList = adapter.getTestViews();
 int size = arrayList.size();
 String currentText;
 for (int i = 0; i < size; i++) {
  TextView textview = (TextView) arrayList.get(i);
  currentText = textview.getText().toString();
  if (curriteItemText.equals(currentText)) {
  textview.setTextSize(maxsize);
  } else {
  textview.setTextSize(minsize);
  }
 }
 }

 public void setOnSnatchCListener(OnSnatchCListener onSnatchCListener) {
 this.onSnatchCListener = onSnatchCListener;
 }
}

布局

<?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="385dp"
 android:layout_marginBottom="5dp"
 android:layout_marginLeft="5dp"
 android:layout_marginRight="5dp"
 android:background="#00000000"
 android:gravity="bottom"
 android:layout_gravity="bottom"
 android:orientation="vertical">

 <LinearLayout
 android:id="@+id/ly_myinfo_changeaddress_child"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:background="@drawable/address_edit_delete_ensure_bg"
 android:orientation="vertical"
 >

 <FrameLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content">

  <TextView
  android:layout_width="match_parent"
  android:layout_height="45dp"
  android:gravity="center"
  android:textSize="16sp"
  android:textColor="#7a7a7c"
  android:text="選擇幸運(yùn)號(hào)" />

  <ImageView
  android:id="@+id/img_cancel"
  android:layout_width="16dp"
  android:layout_height="16dp"
  android:layout_gravity="right|center"
  android:layout_marginRight="17dp"
  android:clickable="true"
  android:src="@mipmap/cha" />
 </FrameLayout>

 <View
  android:layout_width="match_parent"
  android:layout_height="1dp"
  android:background="#f5f5f5" />
 <LinearLayout
  android:layout_width="match_parent"
  android:layout_height="110dp"
  android:gravity="center_vertical"
  android:orientation="horizontal">

  <com.yskj.jh.wheeldemo.wheel.views.WheelView
  android:id="@+id/wv_snatch_left"
  android:layout_width="0dp"
  android:layout_height="match_parent"
  android:layout_gravity="center_vertical"
  android:layout_weight="1" />

  <com.yskj.jh.wheeldemo.wheel.views.WheelView
  android:id="@+id/wv_snatch_center"
  android:layout_width="0dp"
  android:layout_height="match_parent"
  android:layout_gravity="center_vertical"
  android:layout_weight="1" />

  <com.yskj.jh.wheeldemo.wheel.views.WheelView
  android:id="@+id/wv_snatch_right"
  android:layout_width="0dp"
  android:layout_height="match_parent"
  android:layout_gravity="center_vertical"
  android:layout_weight="1" />
 </LinearLayout>

 <LinearLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:gravity="center"
  android:orientation="vertical">
  <LinearLayout
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_marginTop="8dp"
  android:orientation="horizontal">
  <TextView
   android:id="@+id/tv_number"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="當(dāng)前選中的號(hào)碼是: "
   android:textColor="#faa701"
   android:textSize="11sp"/>
  <TextView
   android:id="@+id/tv_number1"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:textSize="11sp"
   android:textColor="#faa701"
   android:text="0"/>
  <TextView
   android:id="@+id/tv_number2"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:textSize="11sp"
   android:textColor="#faa701"
   android:text="0"/>
  <TextView
   android:id="@+id/tv_number3"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:textSize="11sp"
   android:textColor="#faa701"
   android:text="1"/>
  </LinearLayout>
  <LinearLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:orientation="horizontal">
  <TextView
   android:id="@+id/tv_random"
   android:layout_width="0dp"
   android:layout_height="27dp"
   android:layout_weight="1"
   android:layout_margin="10dp"
   android:background="@drawable/round_corner_blue"
   android:gravity="center"
   android:text="我要隨機(jī)選號(hào)"
   android:clickable="true"
   android:textSize="13sp"
   android:textColor="#45a3f3" />
  <TextView
   android:id="@+id/tv_sure"
   android:layout_width="0dp"
   android:layout_height="27dp"
   android:layout_weight="1"
   android:layout_margin="10dp"
   android:background="@drawable/round_corner_blue_btn"
   android:gravity="center"
   android:clickable="true"
   android:text="確定"
   android:textSize="15sp"
   android:textColor="#ffffff" />
  </LinearLayout>

 </LinearLayout>
 </LinearLayout>


</LinearLayout>

源碼下載:http://xiazai.jb51.net/201612/yuanma/AndroidWheelDemo(jb51.net).rar

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android中ViewPager獲取當(dāng)前顯示的Fragment

    Android中ViewPager獲取當(dāng)前顯示的Fragment

    這篇文章主要介紹了Android中ViewPager獲取當(dāng)前顯示的Fragment的兩種方法,一種是使用 getSupportFragmentManager().findFragmentByTag()方法,另一種是重寫(xiě)適配器的 setPrimaryItem()方法,有需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-01-01
  • Android在linux下刷機(jī)教程

    Android在linux下刷機(jī)教程

    android 在linux下刷機(jī),我們只需要下載相應(yīng)的zip包,然后一條命令就可以完成,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2016-09-09
  • Android仿淘口令復(fù)制彈出框功能(簡(jiǎn)答版)

    Android仿淘口令復(fù)制彈出框功能(簡(jiǎn)答版)

    這篇文章主要介紹了Android仿淘口令復(fù)制彈出框功能(簡(jiǎn)答版)的相關(guān)資料,在文章給大家提到了淘口令原理介紹,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-11-11
  • ListView通用泛型適配器

    ListView通用泛型適配器

    今天小編就為大家分享一篇關(guān)于ListView通用泛型適配器,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • Android Manifest中meta-data擴(kuò)展元素?cái)?shù)據(jù)的配置與獲取方式

    Android Manifest中meta-data擴(kuò)展元素?cái)?shù)據(jù)的配置與獲取方式

    這篇文章主要介紹了Android Manifest中meta-data擴(kuò)展元素?cái)?shù)據(jù)的配置與獲取方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • Android AlertDialog多種創(chuàng)建方式案例詳解

    Android AlertDialog多種創(chuàng)建方式案例詳解

    這篇文章主要介紹了Android AlertDialog多種創(chuàng)建方式案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • android 仿微信demo——微信主界面實(shí)現(xiàn)

    android 仿微信demo——微信主界面實(shí)現(xiàn)

    本系列文章主要介紹了微信小程序-閱讀小程序?qū)嵗╠emo),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望能給你們提供幫助
    2021-06-06
  • Kotlin中List的Lambda表達(dá)式應(yīng)用與解析實(shí)例詳解

    Kotlin中List的Lambda表達(dá)式應(yīng)用與解析實(shí)例詳解

    相比于Java的Lambda表達(dá)式只是一種簡(jiǎn)化寫(xiě)法,Kotlin中的Lambda功能極為強(qiáng)大,本文介紹Kotlin中List的Lambda表達(dá)式應(yīng)用與解析,感興趣的朋友一起看看吧
    2024-03-03
  • Android中button的onClick事件幾種方法

    Android中button的onClick事件幾種方法

    這篇文章主要介紹了Android中button的onClick事件幾種方法的相關(guān)資料,這里提供三種方法,實(shí)現(xiàn)監(jiān)聽(tīng)事件,需要的朋友可以參考下
    2017-09-09
  • Android VideoCache視頻緩存的方法詳解

    Android VideoCache視頻緩存的方法詳解

    這篇文章主要介紹了Android VideoCache視頻緩存的方法詳解的相關(guān)資料,AndroidVideoCache是一個(gè)視頻/音頻緩存庫(kù),利用本地代理實(shí)現(xiàn)了邊下邊播,需要的朋友可以參考下
    2017-07-07

最新評(píng)論