2016-06-27 9 views
0

私は基本的なAndroidを学ぶために、簡単なピッチパイプアプリに取り組んでいます。私はかなり完成しました。それはピッチパイプに必要な機能をすべて備えています。しかし、私が試した2つの実世界のデバイスでは、テキストはエミュレータと同じようにボタン内に収まらない。エミュレータよりも実際のデバイスのボタンのテキストが大きいですか?

pitch pipe app image

中央のボタン上のテキストは、実際のデバイス上で、次のようになります:私はできません

F#/

G bの4

申し訳ありませんが、これに代えて私が試した携帯電話のスクリーンショットを提供する、彼らは友人に属しています。しかし、それは基本的にテキストが正当化モードであり、大きすぎるように見えるので、1行ではなく2行を要します。これを防ぐ方法を教えてください。テキストを扱う異なるデバイスをどうやって説明できますか? sans-serif-light以外のフォントを使うべきですか?あなたが提供できるどんな洞察にも感謝します。

+0

これはどのように生成していますか? ArcLayoutライブラリを使用していますか?私は物事の大きさに関して同様の問題を抱えていました。それは、私が渡していたサイズの値が単純なピクセルであったことが原因です。 – JCLaHoot

+0

私は標準XMLを使用しています。私はプログラムで背景を設定しています(押されたときにストロークの色を変更する)が、サイズは決して変更されず、すべてがdpになります。 – AtlasShrugging

+0

この質問は正しく尋ねられ、非常に明確です。なぜ下降音がありますか? –

答えて

1

これは、テキストサイズを設定する際に使用される測定単位によって異なります。

たとえば、「sp」を使用すると、テキストのサイズはデバイスのフォントサイズに比例します。

+0

解像度に依存しないと思われるdpを使用しましたが、なぜそれはまだ起こっていますか? – AtlasShrugging

+0

両方の設定に 'dp'が使用されていますか?1. TextView width 2. TextView textSize? –

+0

これはテキストが入ったボタンなので、textSize、layout_width、layout_heightにはdpを使用しています。 – AtlasShrugging

1

textSizeが異なる画面解像度をサポートするために、異なる寸法を作成する必要があります。または、プログラムで、lineCountが2つ以上になると、テキストのサイズを設定します。 textViewを使用してtextSizeを設定した場合は、getLineCount()を使用してlineCountを取得できます。text.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);

+0

私はピクセルの代わりにdpを使用しました。私はそれが異なる決議の問題を防ぐことになっていると思った? – AtlasShrugging

+0

フォントにspを使用します。縮尺に左右されないピクセル - これはdp単位と似ていますが、ユーザーのフォントサイズの優先順位によっても調整されます。フォントサイズを指定するときは、本機を使用することをお勧めします。そのため、画面の密度とユーザーの好みの両方で調整されます。 – mgcaguioa

+0

ボタンのサイズが一定であるため、私はspを使用できません。ユーザーの好みに合わせて調整することはできません。だから私は同様にテキストを一定に保つ必要があります。 – AtlasShrugging

0

一部のデバイスでは、エミュレータのシステムフォントと多少異なるシステムフォントが使用されることがあります。デフォルトのフォントはAndroidのバージョンによって異なります(例:LollipopはRobotoを使用します)。メーカーによって変更されることがよくあります。

あなたのケースでは、別の混乱の原因があることに注意してください。中央ボタンのフォントサイズをしっかりとFに合わせて測定すると、AがFよりわずかに広いので、Aに切り替えると2行に分割されるしたがって、フォントサイズの動的適応が必要な場合がある。

+0

ああ、カスタムフォントを使用した場合はどうなりますか?または、ロボトを使用しなければならないことを確認しましたか? – AtlasShrugging

+0

モノスペースフォントを使うことはできますが、うまく見えませんIMHO –

+0

私はモノスペースファンでもありません。私は、アプリでパッケージ化されたフォントをすべての携帯電話に使用させるとどうなるでしょうか?これは、すべての電話機が同じように動作することを保証しますか?また、FからAの例では、エミュレータのすべてのボタンをテストしましたが、実際のデバイスで発生する唯一の問題です。 – AtlasShrugging

関連する問題