28

そのため、他の多くの投稿から、Android のテキストには dp ではなく sp を使用する必要があることがわかっています。その理由は、「ユーザーの好み」を尊重するためです。

しかし、これらの好みとは正確には何ですか?ユーザーはこの設定をどのように変更できますか?

携帯電話の設定で参照が見つかりません(「アクセシビリティ」または「ディスプレイ」に何かが期待されていました)。では、ユーザー設定とは何ですか?「ビッグフォント」などのアプリを介してのみ行われますか?

それが(大きなフォントのようなもので設定されている)と仮定すると、フォントを130%に設定して、Googleドキュメントや他のいくつかのGoogleアプリで遊んだことがあります。ほとんどのレイアウトは問題ありませんが、一部は少し途切れて読めなくなります (これは大画面の SGS2 にあります)。では、「sp」を使用して文字サイズのアプリを開発するアプローチとは何ですか? 100% のスケーリングで機能することを確認してから、他の設定を無視しますか? ユーザーが心配できる特別なケースと呼びますか、それとも、テキストがオーバーフローした場合に備えて、物事が拡大またはスクロール可能であることを確認するために私たちの邪魔をしますか? ?

議論の 1 つは、「dp」を使用して、ユーザーが (虫眼鏡を使用しなければならない場合でも) テキストを見る機会があることを保証する必要があるというものです。

感想/コメント?

4

3 に答える 3

61

一部の Android デバイスの設定メニューに表示されます (メーカーによって異なります)。一部のアクセシビリティ オプションによって変更される場合もあります (デバイスによって異なります)。

一般に、特にテキストの本文が大きい場合は、スケールに依存しないピクセルを常に使用する必要があります。

ただし、テキストが既知のサイズのバウンディング ボックスに収まる必要がある場合は、密度に依存しないピクセルを使用して、テキストが常に適切に収まるようにし、ユーザーの設定に関係なくすべての文字が表示されるようにする必要があります。

一言で言えば、テキストサイズを約 5sp 増やすと、テキストが読めなくなったり、UI が壊れたりしますか? その場合は、密度に依存しないピクセルを使用してください。そうでない場合は、スケールに依存しないピクセルを使用します。ただし、一般的に、可能な限りスケールに依存しないピクセルを使用することを目指す必要があります。つまり、さまざまなテキスト サイズに対応できる UI を設計する必要があります。

于 2012-07-24T20:37:25.503 に答える
6

spICS 以降 (ハニカムの可能性もあります。間違っている場合は訂正してください) では、ユーザーのフォント サイズが優先されるため、テキストにはこの単位を使用することをお勧めします。そのため、Gingerbread 以下を使用している場合、この設定を見つけることができません。

設定は、[設定]、[表示]、[フォント サイズ] の下にあります。設定、アクセシビリティ、大きなテキストの下にもオプションがあります。

の使用方法に関する質問に答えるにはsp、デフォルトでは、フォントサイズの設定を変更せずに、1spと同等であることに注意してください1dp(また、設定が導入される前は同等です)。あなたが指摘したように、ユーザーが巨大なテキストを持っている場合に備えて設計するには、そうでなければ予期しない場所でスクロールする必要があると想定する必要があるでしょう。

于 2012-07-24T20:31:04.337 に答える
1

答えは、この特定の問題を全体的に見ることにあります。

フォント サイズに "sp" を使用する動機は、ユーザーがデバイスのフォント サイズを変更した場合に、開発者がレイアウトを制御できるようにすることにあります。

例:

2 つの極端なケースを見てみましょう。

1) ユーザーがフォントサイズ「小」を選択

これは私のレイアウトがどのように見えるかです:

http://postimg.org/image/kiyqeo2bh/

レイアウトxmlは次のとおりです。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="16dp"
tools:context=".MainActivity"
android:orientation="vertical">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_row="0"
    android:layout_column="0"
    android:text="Material-Design ist die Scheiße"
    android:textSize="18sp"
    android:background="#ffff0000" />
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_row="0"
    android:layout_column="0"
    android:text="Material-Design ist die Scheiße"
    android:textSize="25sp"
    android:background="#ffff0000" />

2) ユーザーがフォントサイズ「巨大」を選択した場合:

これは私のレイアウトがどのように見えるかです:

http://postimg.org/image/d7rax9wob/

私のレイアウト xml は、上記のケース 1) と同じです)。

したがって、ここで何が起こったかを見ることができるように、上部の TextView は、フォント サイズの範囲全体 (小さいものから大きいものまで) をラップしないため、sp で一種の完璧なフォント サイズを持っています。しかし、下部の TextView は、ケース 2) でレイアウト/デザインを完全に台無しにします。

そのため、開発者はデザインに適した sp のサイズを反復して決定することができ、Android がそれを描画します。

于 2015-07-25T23:18:22.243 に答える