我有一个问题,我正在尝试根据共享偏好设置中的用户选择调整字体大小,我使用以下颜色完成了背景颜色:
<ListPreference
android:summary="@string/main_bg_list_pref_summary"
android:title="@string/main_bg_list_pref_title"
android:key="main_view_bg_list_pref"
android:entries="@array/color_names"
android:entryValues="@array/color_values"
android:defaultValue="white"/>
数组看起来像这样:
<resources>
<string-array name="color_names">
<item name="red">Red</item>
<item name="green">Green</item>
<item name="blue">Blue</item>
<item name="grey">Grey</item>
<item name="white">White</item>
<item name="black">Black</item>
</string-array>
<string-array name="color_values">
<item name="red">#990000</item>
<item name="green">#009900</item>
<item name="blue">#000099</item>
<item name="grey">#CCCCCC</item>
<item name="white">#FFFFFF</item>
<item name="black">#000000</item>
</string-array>
</resources>
在我的活动页面上,我有以下代码:
View linearLayout;
SharedPreferences prefs;
prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.registerOnSharedPreferenceChangeListener(this);
linearLayout= findViewById(R.id.main_layout);
String bg = prefs.getString("main_view_bg_list_pref", "#FFFFFF");
linearLayout.setBackgroundColor(Color.parseColor(bg));
我的布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#FFF"
android:gravity="center"
android:id="@+id/main_layout">"
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/mainscreen_title"
android:textSize="25sp"
android:textColor="#000"
android:gravity="center"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/main_prompt"
android:textSize="15sp"
android:layout_marginTop="20dp"
android:gravity="center"
android:textColor="#000"
/>
<Button
android:id="@+id/post_review"
android:layout_width="200dp"
android:layout_height="60dp"
android:layout_marginTop="20dp"
android:text="@string/post_review_txt"
android:textSize="15sp"
android:textColor="#FFFFFF"
android:background="@drawable/buttonshape"
/>
<Button
android:id="@+id/view_reviews"
android:layout_width="200dp"
android:layout_height="60dp"
android:layout_marginTop="20dp"
android:text="@string/view_review_txt"
android:textSize="15sp"
android:textColor="#FFFFFF"
android:background="@drawable/buttonshape"
/>
<Button
android:id="@+id/add_category"
android:layout_width="200dp"
android:layout_height="60dp"
android:layout_marginTop="20dp"
android:text="@string/add_category_txt"
android:textSize="15sp"
android:textColor="#FFFFFF"
android:background="@drawable/buttonshape"
/>
<Button
android:id="@+id/view_remote_categories"
android:layout_width="200dp"
android:layout_height="60dp"
android:layout_marginTop="20dp"
android:text="@string/view_remote_categories_txt"
android:textSize="15sp"
android:textColor="#FFFFFF"
android:background="@drawable/buttonshape"
/>
</LinearLayout>
我试图用特定TextView的字体大小来做同样的事情,但因为没有像设置背景颜色那样的方法,我不确定这是如何工作的,到目前为止我有这个:
<ListPreference
android:summary="@string/main_font_summary"
android:title="@string/main_font_title"
android:key="main_font_pref"
android:entries="@array/font_names"
android:entryValues="@array/font_values"
android:defaultValue="15sp"/>
数组:
<string-array name="font_names">
<item name="large">Large Font</item>
<item name="medium">Medium Font</item>
<item name="small">Small Font</item>
</string-array>
<string-array name="font_values">
<item name="large">20sp</item>
<item name="medium">15sp</item>
<item name="small">10sp</item>
</string-array>
是否有某种方法可以某种方式定位textview ID并通过prefs更改此内容?