2017-11-13 10 views
0

だから私は完全にユーザーがアクセシビリティを通して彼のフォントサイズを設定するとき、私は私のUIをruing文字サイズに問題があった今迷ってしまいました - >フォントサイズ巨大はそう簡単な解決策として、私はすべて変更することを決めたにテキストは、テキストが常に同じサイズではなくTEXTSIZEが任意のアイデア理由のサイズを変更しDPに設定されていても、いくつかの場所textviewsになりDP代わりのSPにサイズ??ここ文字サイズ

魔女でも、アクセシビリティ

<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を無視しているDPに設定されたテキストのサイズを持つボタンです:

<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

nougatユーザーがフォントサイズ設定を変更できるようになったら、完了したUI画面が小さくなったり大きくなったりします。そのため、我々はどの画面の次元を採用するように応答するように設計する必要があります。 –

+0

良い点ですが、今のところは、設定でフォントサイズを設定しているユーザーがUIにアクセスできないため、すぐに修正が必要です – kosas

+0

dpを使用しようとしても、完璧な次元画面を適用するためのアンドロイドデザインが変更されますフィット。 https://developer.android.com/guide/practices/screens_support.html Textviewのサイズは、コントロールを置くことができないデバイス仕様に従って変更されます。 –

答えて

2

は、私はあなたのアプリケーション内の非変更フォントサイズを行います。このためのソリューションを持っている

adjustFontScale(getResources().getConfiguration()); 

必要に応じてfontScaleを変更できます。 これが役立つことを願っています。

+0

はうまくいきました。私はすべての断片に入れておきました。そうでなければ、正しく動作しません。 – kosas

+0

私が行うことは、ベースクラスで実装しています。 –

1

これを使用するとそれがあなたを助けるかどうか。またはあなたは基本活動を行うことができます

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でこの方法:

DisplayMetrics metrics = getApplicationContext().getResources().getDisplayMetrics(); 
    float dp = 20f; 
    float fpixels = metrics.density * dp; 
    int pixels = (int) (fpixels + 0.5f); 
    Edit_click.setTextSize(pixels); 
+0

コードは動作しますが、textSizeを設定しますが、アクセシビリティによって変更するたびにテキストはサイズ変更されます – kosas

+0

既に、私たちはそれ以上のコントロールを持っていないと言いました。 –

関連する問題