我在android編程方面是全新的,爲了能夠爲舊的(android 2.3.3)設備生成應用程序,我在佈局上進行了一些修改。我在Android工作室的GUI編輯器中混淆了很多東西,使得(在我看來)一個非常漂亮的GUI。然後我才注意到我在API 23中工作。這導致我的舊設備(API 10)完全搞砸了GUI,然後我開始改變一切,以至於看起來對於我想開發的設備對於。適用於較舊設備的Android佈局
我與垂直方向的LinearLayout
工作,把一些TextView
S和在那裏Chronometer
和大結局(我的問題的原因)一個ToggleButton
,改變顏色,因爲它被點擊。我該切換按鈕代碼如下:
<ToggleButton android:id="@+id/toggleButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_margin="10dip"
android:enabled="true"
android:background="@drawable/toggle_button"
android:button="@android:drawable/ic_btn_speak_now"
android:buttonTint="#FFFFFF"
android:textAllCaps="false"
android:textOn="@string/toggle_on"
android:textOff="@string/toggle_off"
android:textColor="#FFFFFF"
android:gravity="center" />
在此代碼片段ic_btn_speak_now
一些揚聲器圖標我在系統可繪製中。 toggle_button
,另一方面是我寫的,看起來如下:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@drawable/toggle_color" />
<corners android:radius="5dip" />
</shape>
其中toggle_color
它轉的樣子:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#669900"
android:state_checked="true" />
<item android:color="#cc0000"
android:state_checked="false" />
</selector>
這導致了這個非常漂亮的按鈕,這完全適用於API 23 ,但不能爲API 10
工作210我一直在環顧四周,處處都有其他的解決方案和其他原因,爲什麼某些事情不起作用。我嘗試了很多東西,但沒有任何結果。我甚至省略了我的按鈕的漂亮形狀,希望能夠實現顏色變化,但我也沒有設法做到這一點。
我的問題因此可以提如下:
- 是什麼讓我的代碼不會對API 10工作?
- 我怎樣才能讓我心愛的按鈕適用於API 10?
每一位的幫助表示讚賞。
如果您使用的是較低版本(尤其是api級別14以下),則應使用支持庫及其UI組件(例如,在api 10和23上獲得類似的結果。 – Rich
@Rithe然後我應該查找哪些庫在這種情況下?一個支持選擇器的庫?一個支持按鈕在一個切換按鈕中着色的庫?我該如何使用這樣一個庫?我有這種感覺,我已經無意中使用了這樣的庫,但我應該怎麼知道如何使用庫等?謝謝在任何情況下的暗示 –
如果你想在所有版本中有相同的設計我推薦支持庫v7(AppCompat),它允許你使用材料設計到版本2.1。有關更多信息,請參閱本網站:https://developer.android.com/tools/support-library/features.html#v7 – Rich