Button Style Design

Button 按鈕設計

1
2
3
4
5
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/filters_buttons_selected" android:state_pressed="true" />
<item android:drawable="@color/filters_buttons" />
</selector>

android:state_pressed="true" 屬性是按下後的顏色變化

這樣就可以幫按鈕添加自訂色彩,如果使用的是imageButton
可以在android:src=" ... "設定圖片資源,即可設計出簡單美觀的自訂按鈕


設定圓角

如果要設定圓角及其他特效,就不能直接於item之後設定android:drawable="xx",否則其他設定都會被這個顏色給覆蓋。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 按下後的狀態 -->
<item android:state_pressed="true">
<shape android:shape="rectangle">
<!-- 該按鈕按下後的顏色 -->
<solid android:color="@color/dred"/>
<!-- 圓角呈度 -->
<corners android:radius="30dp" />
<!-- 邊框寬度和顏色 -->
<stroke android:width="2dp" android:color="#538394" />
</shape>
</item>
<!-- 預設的狀態 -->
<item>
<shape android:shape="rectangle">
<corners android:radius="30dp" />
<solid android:color="@color/fred"/>
<stroke android:width="2dp" android:color="#538394" />
</shape>
</item>
</selector>

實現效果


設定圓型Button及漸層色彩

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
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<!-- 設定為圓型型狀 shape="oval" -->
<shape android:shape="oval">
<!-- 起始色彩為 #0A9BCD -->
<gradient android:startColor="#0A9BCD"
<!-- 最終色彩為 #083B4D-->
android:endColor="#083B4D"
<!-- 漸層半徑 -->
android:gradientRadius="60dp"
<!-- 漸層模式 -->
android:type="radial"/>
<corners android:radius="30dp" />
<stroke android:width="2dp" android:color="@color/strokec" />
</shape>
</item>
<item >
<shape android:shape="oval">
<corners android:radius="10dp" />
<solid android:color="#0A9BCD"/>
<stroke android:width="2dp" android:color="@color/strokec" />
</shape>
</item>
</selector>

實現效果


交叉使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape android:shape="oval">
<gradient android:startColor="#0A9BCD"
android:endColor="#083B4D"
android:gradientRadius="60dp"
android:type="radial"/>
<stroke android:width="2dp" android:color="@color/strokec" />
</shape>
</item>
<item >
<shape android:shape="rectangle">
<corners android:radius="20dp" />
<solid android:color="#0A9BCD"/>
<stroke android:width="2dp" android:color="@color/strokec" />
</shape>
</item>
</selector>

實現效果

RxJava_Thread_Control

RxJava 線程控制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 在當前線程運行
Schedulers.immediate()
// 總是開啟新線程,並在新線程執行
Schedulers.newThread()
// io操作(讀寫文件、網路交互),類似newThread,區別在於io()內部為無數量上限的線程池,因此多數情況下io()比newThread更有效率(建議不要將計算工作放在io()中)
Schedulers.io()
// 進行計算工作所使用的Scheduler
Schedulers.computation()
// 切換線程至主線程
AndroidSchedulers.mainThread()

RxJava

RxJava & RxAndroid

RxJava的基本認知
RxJava 重要的核心概念為Observables和Subscribers

  • Observables > 被觀察者
  • Subscribers > 訂閱者

舉例來說,你可以訂閱某部落格(Observables),而當部落格發文時,訂閱者(Subscribers)就會收到通知。

而這個概念就是異步(Async)。

MyFirstPost

First Post

The Blog Built in 2017/7/20

Is the First Post in this blog.
I want to say ' Hello World ' !!

1
2
3
4
public void say(String str)
{
System.out.print(str);
}
|