2015-11-19 3 views
6

今日のディスプレイのサイズと解像度は非常に広い範囲です。例えば、私の34.5cm×19.5cmのディスプレイ(39.6cmまたは15.6 "の対角線になる)は1366×768ピクセルですが、15インチの対角線を持つMacBook Pro(3世代)は2880×1800ピクセルです。GUI開発者はどのように可変ピクセル密度を扱うのですか?

複数の人々が、このような高解像度ディスプレイではすべてが小さすぎると訴えていました(example参照)。これは、開発者がピクセルを使用してGUIを定義するときに説明するのは簡単です。 「従来のディスプレイ」では、ほとんどのモニタでピクセルのサイズがほぼ同じであるため、これは大きな問題ではありません。しかし、ピクセル密度がはるかに高い新しいモニターでは、ピクセルは単純に小さくなります。

どのようにしてユーザーインターフェイスの開発者はその問題に対処できますか?画面の物理的なサイズを取得することは可能ですか?ピクセルベースのものではなく物理的なサイズを設定することは可能ですか?それはまだ問題ですか(私はそれについて最後に読んだのでしばらくしています)、またはその間固定されていましたか?

css seems to support cmhereを試してみると、設定サイズではありません)。

+0

重要なのかどうかわかりませんが、私はLinuxのみのユーザー/開発者です。 –

+0

ああ、どのような環境ですか?それらのほとんどは今日(https://wiki.archlinux.org/index.php/HiDPI)ちょっと混乱しているようで、DPIの情報は正確ではないかもしれません(http://unix.stackexchange.com/a/75387/36973)を最初に置きます。正しいDPI情報がなくても、ツールキットに頼っている、OSに頼っている、DPIを自分で処理しているもののどれも動くことができないので、私の答えに追加するのはちょっと躊躇します。 – Martheen

+0

@Martheen私はMateデスクトップ環境でLinux Mintを使用しています。 –

答えて

2

ユーザーインターフェイス開発者はどのようにしてその問題に対処できますか?

resolution independenceをサポートするツールキットまたはフレームワークを使用してください。 WPFは、分解能に依存しないように一から構築されていますが、Windows Formsのような古いフレームワークでさえ新しいトリックを学ぶことができます。 OSX/iOSWindows(またはWebについて話している場合はbrowser)は、自動スケーリングで問題を解決する可能性がありますが、ビットマップグラフィックが含まれている場合、開発者はdifferent bitmapsをAndroidに提供する必要があります他のOSと比較して)

画面の物理サイズを取得することはできますか?

Noであり、開発者は気にしないでください。開発者は、デバイスのクラス(タブレットとスマートフォンのUIの違いなど)や、おそらくDPIが使用するビットマップリソースを決定するだけです。ベクターリソースとフォントは、フレームワークによってスケーリングされる必要があります。

これはまだ問題ですか(それについて私が最後に読んでからしばらくしていますか?

最後に読んだときに依存します。 WPFやUWPで開発している人は誰でも簡単に使えるが、主要なサードパーティのアプリケーションがすぐに参加することは期待しないでください。 OSX表示スケーリング現代のモバイルOSは、いずれかの解像度(iOSとWindowsの携帯電話)の限られた範囲で実行されているか、非常にうまくありとあらゆる解決を処理している間(Android)、少し良く動作しているようです

+0

答えについて "いいえ" - 開発者がdpiと解像度を知っている場合、彼は実際にデバイスの物理的なサイズを知っています。 GUIの開発者が気にする必要がある、少なくともGUIに与えることを好みます。 – johnfound

0

に対処するためのいくつかの方法がありますたとえば、私がJavaでモバイルアプリケーションを作るとき、DIP(Density Independent Pixels;固定サイズで固定)を使うか、オブジェクトを単純な数式で画面の割合を占めるようにします。 Web開発では、VWとVH(ビューポートの幅とビューポートの高さ)をpxの代わりに値の最後に追加することで、オブジェクトがビューポートのパーセンテージを占めるようになります。たとえば、100vhはビューポートの高さの100%をとります。それでは、私が思うに最善の方法だと思いますが、時間がかかりますが、ウィンドウのサイズが変更されても自動的に要素のサイズを変更するブートストラップのようなライブラリを使用することです。 W3Schoolsにはブートストラップに関する良いチュートリアルがあり、これらのオプションの詳細な説明は簡単なGoogle検索で参照できます。

0

今日のディスプレイの多様性時代におけるGUIのデザインは本当の挑戦です。

  1. 設定はありませんまたはテキストの一定のピクセルサイズを期待する - ユーザーはOSのシステム設定からそれを変更することができます。私は主にGUIアプリケーションの設計については、いくつかのヒントをお勧めします。テキストの実際の尺度を使用して、描画するときにピクセルサイズを確認します。ランダムなサイズのテキストをウィンドウの境界に配置する方法をいくつか用意してください。

  2. GUIウィジェットの一定のピクセルサイズを設定しないでください。ウィンドウのサイズに応じて、ウィンドウ上にいくつかの適応的な方法で配置してください。ほとんどのGUIウィジェットツールキットは、今日、このような計測器を備えています。

  3. 一定のピクセルサイズのダイアログウィンドウは設定しないでください。 OSがあなたのためにサイズを選択し、次にあなたが得るものを使用させます(X)。または、サイズと位置(Windows)を設定する必要がある場合は、画面サイズのパーセントとして定義します。

  4. 可能であれば、アイコンのスケーラブルな画像形式を使用します。 SVGは実際にアイコンに最適です。サイズの異なるビットマップアイコンのセットを使用することは許容されますが、メモリとしては最適ではありませんが、ほとんどの場合、完全なスケーリングは提供されません。

関連する問題