[問題] 切換色系及字體?(已解決

作者: gcobc12632 (Ted)   2017-09-20 12:50:47
我在 color.xml 裡設定了幾個主要色系以及文字顏色
然後套用在其他 layout.xml 以及 drawable.xml 裡面
但是我現在突然要做一個切換色系的功能
大概需要切換五種色系 色碼都有了
每種色系要改五種顏色(三種主色 + 兩種字體顏色)
因為之前沒做過 加上我有些顏色都已經直接寫在 layout.xml 或 drawable.xml 裡面了
類似這樣:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/main_color"
android:textSize="20sp" />
或是:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/main_color" android:state_pressed="true" />
<item android:drawable="@color/sub_color" />
</selector>
我試過 ColorDrawable
不過似乎無法更改 layout.xml 或 drawable.xml 內部的顏色
這裡該怎麼改呢?
或是有其他改法嗎?
作者: paulku (蒼木浩介.改)   2017-09-20 13:12:00
textview設ID ex textviewTarget((TextView)findViewById(R.id.textviewTarget)).setTextC(接上) .setTextColor()這樣就可以了 很簡易
作者: gcobc12632 (Ted)   2017-09-20 13:20:00
我是要改整個APP內的顏色(切換色系)應該說是切換樣式那樣…
作者: benntqoo (This Letter)   2017-09-20 14:14:00
寫theme設定不同主題的顏色檔可以大方向的更改整個app
作者: gcobc12632 (Ted)   2017-09-20 14:16:00
寫theme的話可以連xml內的設定都一起更改嗎?
作者: benntqoo (This Letter)   2017-09-20 14:18:00
應該可以試著寫對應的style搭配theme更改整個顏色不要寫死顏色更換在程式碼中應該可以達到換顏色的效果不確定是不是最佳解,功有點多你要的功能應該是類似這樣https://goo.gl/bjGicU但是特定textView顏色可能要額外處理
作者: gcobc12632 (Ted)   2017-09-20 17:33:00
樓上那個網頁的方法…有看沒有懂 我程式功力還太弱了
作者: ssccg (23)   2017-09-21 15:14:00
Theme的寫法是xml(layout、drawable...)用到顏色的地方都必須指到某個attr(寫成?attrName這種)然後只要在theme裡面指定這些attr實際上是對應到哪個color換掉Theme就會整組換掉了這些都只要xml設定不用改程式這樣沒錯,不過換Theme必須重啟Activity就是,可接受就ok另外android 5.0之前有個bug,drawable中不能用attr如果要支援5.0之前的版本,drawable還是必須用多個xml
作者: benntqoo (This Letter)   2017-09-21 18:49:00
痾,沒有要你看那個網頁做抱歉讓你誤會只是他那個lib產生的效果應該是我認為你想要的結果
作者: ssccg (23)   2017-09-21 21:55:00
drawable要在5.0前用就只能寫多個,把你的selector.xml複製一份像你原本的,各個Theme的list_view_selector再用對應的(原本的是說裡面直接寫@color的)或是你連結那篇下面有個用ColorStateList的方法,但那必須用程式去設ColorStateList給view,不能直接寫在layout中

Links booklink

Contact Us: admin [ a t ] ucptt.com