[问题] 切换色系及字体?(已解决

楼主: 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