gpt4 book ai didi

android - 如何动态更改主题的文本颜色?

转载 作者:行者123 更新时间:2023-11-30 04:41:29 24 4
gpt4 key购买 nike

我希望在用户选择不同的字体颜色后更改所有 TextView 的文本颜色。

我可以通过链接所有关联的 TextView 并对它们调用 setTextColor 来实现这一点。

但我想知道这是否也可以通过自定义主题来完成?

最佳答案

这是一个老问题,但尽管如此,我似乎有了答案。

最简单的形式。

<style name="BaseTheme" parent="@android:style/Theme.Black">
<item name="android:textColor">@color/white</item>
<item name="android:background">@color/black</item>
</style>

<style name="InvertedTheme" parent="BaseTheme">
<item name="android:textColor">@color/black</item>
<item name="android:background">@color/white</item>
</style>

在你的 androidmanifest 集中;

<activity
android:name=".SomeActivity"
android:label="@string/app_name"
android:theme="@style/BaseTheme" />

然后在你的 SomeActivity.java;

public class SomeActivity extends Activity {

static final String INVERTED_EXTRA = "inverted";

private void invertTheme() {
// to make the theme take effect we need to restart the activity
Intent inverted = new Intent(this, SomeActivity.class);
inverted.putExtra(INVERTED_EXTRA, true);
startActivity(inverted);
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// must be before the setContentView
if (getIntent().getBooleanExtra(INVERTED_EXTRA, false))
setTheme(R.style.InvertedTheme);
}

setContentView(R.layout.some_layout);
...

我试过没有开始新的 Activity ,但它不会重置颜色。

关于android - 如何动态更改主题的文本颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5907988/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com