所以我完全迷失了,当用户通过辅助功能 - >设置字体大小时,我的文字大小会出现问题。字体大小到巨大所以为了快速修复,我决定将所有文字大小更改为 dp ,而不是 sp ,文本将永远是同样大小但在某些地方 textviews 即使 textsize 设置为 dp 也会调整任何想法?
此处是文本大小设置为 dp 的按钮,即使在通过辅助功能更改后也能保持字体大小
<Button
android:id="@+id/video_button"
android:textSize="16dp"
android:layout_marginTop="10dp"
android:layout_height="30dp"
android:layout_width="180dp"
android:layout_centerHorizontal="true"
android:layout_below="@+id/webshop_button"
android:text="@string/button_3dvideo_text"/>
这是 textView ,即使将其设置为 dp 后也会忽略 textSize :
<TextView
android:id="@+id/about"
android:gravity="center"
android:textSize="16dp"
android:layout_above="@+id/footer"
android:layout_marginBottom="20dp"
android:layout_centerHorizontal="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/color_white"
android:text="@string/about"/>
答案 0 :(得分:4)
我有一个解决方案,这将使您的应用中的字体大小无法更改:
public void adjustFontScale(Configuration configuration) {
configuration.fontScale = (float) 1;
DisplayMetrics metrics = getResources().getDisplayMetrics();
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
wm.getDefaultDisplay().getMetrics(metrics);
metrics.scaledDensity = configuration.fontScale * metrics.density;
getBaseContext().getResources().updateConfiguration(configuration, metrics);
}
在每个活动的onCreate中调用此方法,或者您可以进行基本活动:
adjustFontScale(getResources().getConfiguration());
您可以根据需要更改fontScale。 希望这会有所帮助。
答案 1 :(得分:1)
可能会尝试使用它不确定它是否会帮助你。
DisplayMetrics metrics = getApplicationContext().getResources().getDisplayMetrics();
float dp = 20f;
float fpixels = metrics.density * dp;
int pixels = (int) (fpixels + 0.5f);
Edit_click.setTextSize(pixels);