gpt4 book ai didi

android - 使用 Android 主题更改应用程序范围的字体大小

转载 作者:太空宇宙 更新时间:2023-11-03 13:28:50 25 4
gpt4 key购买 nike

是否可以让 Android 应用程序中的每一位文本变大,模仿在全局设置屏幕中更改默认字体大小时发生的情况?我希望用户在设置屏幕中选择字体大小并更改所有文本,而无需在我的个人屏幕上放置额外的样式标签。

到目前为止,我有三个主题可以正确更改 TextView 的字体大小,但不能更改 EditTextListView 元素

<style name="AppThemeSmall" parent="AppTheme">
<item name="android:textViewStyle">@android:style/TextAppearance.Small</item>
<item name="android:textAppearance">@android:style/TextAppearance.Small</item>
</style>

<style name="AppThemeMedium" parent="AppTheme">
<item name="android:textViewStyle">@android:style/TextAppearance.Medium</item>
<item name="android:textAppearance">@android:style/TextAppearance.Medium</item>
</style>

<style name="AppThemeLarge" parent="AppTheme">
<item name="android:textViewStyle">@android:style/TextAppearance.Large</item>
<item name="android:textAppearance">@android:style/TextAppearance.Large</item>
</style>

最佳答案

我最终向 xml 添加了样式,这样感觉更干净,而且我有更多的控制权。

每个布局 xml(包括 EditText、AutoCompleteTextView)

 <TextView
style="?textTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/ref" />

属性.xml

<attr name="textTitle" format="reference" />

styles.xml(请注意,我也覆盖了微调器样式以保持大小一致

<style name="AppTheme.Small">
<item name="textTitle">@style/small_title_text</item>
<item name="android:spinnerItemStyle">@style/spinner_small</item>
</style>

<style name="AppTheme.Medium">
<item name="textTitle">@style/medium_title_text</item>
<item name="android:spinnerItemStyle">@style/spinner_medium</item>
</style>

<style name="AppTheme.Large">
<item name="textTitle">@style/large_title_text</item>
<item name="android:spinnerItemStyle">@style/spinner_large</item>
</style>


<!-- SMALL FONT SIZE -->
<style name="small_title_text">
<item name="android:textSize">15sp</item>
<item name="android:textStyle">bold</item>
</style>


<!-- MEDIUM FONT SIZE -->
<style name="medium_title_text">
<item name="android:textSize">19sp</item>
<item name="android:textStyle">bold</item>
</style>

<style name="medium_list_text"></style>

<!-- LARGE FONT SIZE -->
<style name="large_title_text">
<item name="android:textSize">23sp</item>
<item name="android:textStyle">bold</item>
</style>

<style name="large_list_text"></style>

<!-- SPINNER STYLES -->
<style name="spinner_small">
<item name="android:textSize">17sp</item>
<item name="android:paddingTop">0dip</item>
</style>

<style name="spinner_medium">
<item name="android:textSize">21sp</item>
<item name="android:paddingTop">0dip</item>
</style>

<style name="spinner_large">
<item name="android:textSize">25sp</item>
<item name="android:paddingTop">0dip</item>
</style>

然后我在创建每个 Activity 之前设置主题。

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PreferenceHelper mPrefs = PreferenceHelper.getInstance(this);
setTheme(mPrefs.getTheme());
setContentView(R.layout.activity_list);

关于android - 使用 Android 主题更改应用程序范围的字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15950010/

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