2016-06-16 7 views
1

私はさまざまな画面サイズのために私のアプリを設定するためのいくつかの値フォルダとdimen.xmlファイルを作っています。 Android Studioのプレビューでは完全に表示されますが、電話でアプリを実行するとそのディメンションは有効になりません。 Android Studioのレイアウトに表示されるレイアウトと電話に表示されるレイアウトは異なります。間違ったフォルダから取り込まれた寸法値

だから、例えば私のネクサス5にアプリが値-w640dp/dimen.xmlから寸法をお読みくださいしかし、それはいくつかの奇妙な理由のために値/ dimen.xmlからそれらを読み込みます。

解決するにはどうすればよいですか?

ここにスクリーンショットがあります。

のAndroid Studioのプレビュースナップショット(ネクサス5)

enter image description here

ネクサス5電話スクリーンショット:

enter image description here

+0

代わりに私の側で値-w640dp http://stackoverflow.com/questions/24579608/android-resource-qualifiers-swdp-vs-wdp –

+0

、ゴアネクサス5の値-sw640dpを使用してみてくださいUIはvalues-sw600dpから次元を完全に読み込んでいます。 –

答えて

1

だから、DPは、以下の式を用いて計算されています

pixels/dp = dpi/160dpi or pixels/dp = density 

Lookin device metricsにおけるG、ネクサス5は、SO 3の密度を有している:それは画面の実際の最小幅はないので、それはまた、それで360とすることができるので、値-sw600dpを使用

dp = pixels/density 
dp = 1920px/3 = 640dp 
dp = 1080px/3 = 360dp 

はそれを修正しないであろうの値-sw300dpを使用してください。これは非常に幅広い種類のデバイスに適用されますが、注意してください。 値-sw600dpは通常、タブレットをターゲットにしています。

また、デバイスの真の解像度がエミュレータで作成されたものとNexus 5で一致しない問題も発生しています。そのため、AVD画面を確認して解像度が実際の解像度と一致することを確認してくださいデバイス。たとえば、Nexus 5は1920x1080でなければなりません。この問題が発生した場合は、エミュレータを再作成するか、別のエミュレータを試してみてください。

enter image description here

+0

値はsw300dpですか?どのように私はすべての主要な画面サイズのレイアウトを設計できますか? – user2498079

+0

私はエミュレータでアプリケーションを実行していません。私は実際のデバイスでそれを実行しています – user2498079

+0

はい、値 - sw300dp、私はそれを訂正しました、ありがとうございます。あなたのレイアウトに関するあなたの懸念事項は何ですか?ほとんどの標準レイアウトでは携帯電話がかなりうまくカバーされていますが、人々はタブレットの空白部分が多い問題にぶつかります。画像のようなコンポーネントのスケーラビリティが懸念される場合は、デバイスの密度を判断して適切な判断を下すことができます。しかし、一般的には、それはレイアウトの特定のコンポーネント、特に写真に関する懸念事項です。他のほとんどのコンポーネントは拡張性があります。 –

関連する問題