国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

香港云服务器
服務器之家 - 編程語言 - Android - android使用Rxjava實現倒計時功能

android使用Rxjava實現倒計時功能

2022-03-07 14:45瀟瀟鳳兒 Android

這篇文章主要為大家詳細介紹了android使用Rxjava實現倒計時功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下

一般我們在開發時,常會遇到使用倒計時的場景,以前一般會使用thread+handler來實現,而強大的Rxjava橫空出世后,使這一切變得簡單了。我們可以在子線程中直接使用發射器每融1S發出一個時間,在主線程中接收更新ui,在等倒計時結束恢復界面,下面給出在用戶注冊時獲取驗證碼的,倒計時使用的代碼demo。具體調用方法如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/**
* 點擊獲取驗證碼,10S倒計時,利用Rxjava進行線程切換
* @param view
*/
public void getSureCode(View view) {
Observable.create(new ObservableOnSubscribe<Integer>() {
 @Override
 public void subscribe(ObservableEmitter<Integer> emitter) throws Exception {
 int i = 10;
 while (i >= 0) {
  try {
  Thread.sleep(1000);
  emitter.onNext(i);
  } catch (InterruptedException e) {
  e.printStackTrace();
  }
  i--;
 }
 emitter.onComplete();
 }
}).subscribeOn(Schedulers.io())// 此方法為上面發出事件設置線程為IO線程
 .observeOn(AndroidSchedulers.mainThread())// 為消耗事件設置線程為UI線程
 .subscribe(new Consumer<Integer>() {
  @Override
  public void accept(Integer integer) throws Exception {
  bindingView.countDownTv.setClickable(integer > 0 ? false : true);
  bindingView.countDownTv.setBackground(integer > 0 ? getResources().getDrawable(R.drawable.rectangle_gray_bg) : getResources().getDrawable(R.drawable.rectangle_red_bg));
  if(integer > 0) {
   String content = integer + "秒后可重新發送";
   SpannableString span = new SpannableString(content);
   int index = content.indexOf("后");
   span.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.colorTheme)), 0, index, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //設置前景色為紅色
   bindingView.countDownTv.setText(span);
  } else {
   bindingView.countDownTv.setText(getString(R.string.get_check_code));
  }
  }
 });
}

下面的是布局文件,布局只有一個TextView控件,這里采用了dataBinding進行控件的綁定:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<layout xmlns:android="http://schemas.android.com/apk/res/android">
 
 <LinearLayout xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical"
 tools:context="com.smilexie.countdownwithrxjava.MainActivity">
 
 <TextView
  android:id="@+id/count_down_tv"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_margin="10dp"
  android:gravity="center"
  android:layout_gravity="center_vertical"
  android:padding="8dp"
  android:background="@drawable/rectangle_red_bg"
  android:text="@string/get_check_code"
  android:textSize="14sp"
  android:textColor="@color/white"
  android:onClick="getSureCode"/>
 
 </LinearLayout>
</layout>


這里定義了兩個drawable用來對倒計時背景的更換,倒計時時不允許對控件進行點擊:
rectangle_gray_bg.xml文件

?
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
 android:shape="rectangle">
 <!-- 填充顏色 -->
 <solid android:color="@color/colorLineItem"></solid>
 <!-- 線的寬度,顏色灰色 -->
 <stroke android:width="1dp" android:color="@color/colorLineItem"></stroke>
 <!-- 矩形的圓角半徑 -->
 <corners android:radius="5dp" />
</shape>

rectangle_gray_bg.xml

?
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
 android:shape="rectangle">
 <!-- 填充顏色 -->
 <solid android:color="@color/colorTheme"></solid>
 <!-- 線的寬度,顏色灰色 -->
 <stroke android:width="1dp" android:color="@color/colorTheme"></stroke>
 <!-- 矩形的圓角半徑 -->
 <corners android:radius="5dp" />
</shape>

兩個顏色值:

?
1
2
<color name="colorLineItem">#FFDDDDDD</color>
<color name="colorTheme">#f64a33</color>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/smileiam/article/details/68927406

延伸 · 閱讀

精彩推薦
1186
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 色狠狠综合天天综合综合 | 国产 欧美 日韩 一区 | 九一视频在线免费观看 | 免费国产一区 | 欧美日韩午夜 | 欧美日韩不卡 | 久久精品无码一区二区日韩av | 狠狠色狠狠色合久久伊人 | 国产精品香蕉在线观看 | 欧美成人h版在线观看 | 日韩aaa视频| 国产精品视频 | 国产福利在线观看 | 香蕉影院在线观看 | 99热这里有精品 | 午夜在线影院 | 亚洲精品久久久久久久久久久久久 | 成人国产精品视频 | 国产视频一区在线 | 国产欧美日韩一区二区三区 | 亚洲网站在线 | 成人免费一区二区三区视频网站 | 99亚洲精品 | 亚洲免费视频一区 | 色乱码一区二区三区网站 | 在线观看亚洲 | 日韩欧美国产精品综合嫩v 日韩a∨精品日韩在线观看 | 国产在线不卡观看 | 色九九 | 国产精品国产三级国产aⅴ中文 | 亚洲小视频 | 亚洲精品视频在线看 | 亚洲国产精品网站 | 国产精品美女久久久久久久网站 | 欧美激情精品久久久久久变态 | 精品国产精品三级精品av网址 | 国产精品免费久久久久久久久久中文 | 日日夜夜草草 | 在线观看国产精品一区 | 爱色av | 成人网18免费网站 |