知識社群登入
位置: 艾鍗學院 Blog > 專業論壇 > 討論
[Android實作問題] 製作Android雙色按鈕
1樓
Jarey老師
請問如何製作出撥打電話或結束通話一樣的雙色按鈕?
2樓
Hi Terry:

要自行設計按鈕有幾種方式, 

一: 準備多張不同的圖片(如按下前是亮色,按下後變暗, 或是按下前是原圖,按下後變小圖)
接著自行編寫不同圖片顯切換的時機, 使用XML編寫,並將檔案放置於 drawable目錄中
例如下列的範例.  bg.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<!-- 非觸控模式下,取得焦點時的圖片(利用軌跡球或鍵盤上下選) -->
<item android:drawable="@drawable/ittraining_bg_focus_blue"
android:state_focused="true" />
<!-- 觸控模式下,按下時的圖片 -->
<item android:drawable="@drawable/ittraining_bg_pressed_blue"
android:state_pressed="true" />
<!-- 原始圖片 -->
<item android:drawable="@drawable/ittraining_bg_focus_blue" />

</selector>

接著將該bg.xml 設定為該Button元件的blackground即可.



二: 利用色彩過瀘器為你的View元作設計不同的渡色.
提供你三種利用ColorFilter的做法.

bt.getBackground().setColorFilter(
new PorterDuffColorFilter(Color.argb(210, 255, 0, 0), PorterDuff.Mode.MULTIPLY));

bt2.getBackground().setColorFilter(0xFFFF0000, android.graphics.PorterDuff.Mode.MULTIPLY);

bt3.getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0xFFAA0000));





BR.
Jarey
3樓
謝謝Jarey老師,您的回應速度還是跟以往一樣迅速,非常感謝!