すべてのデバイスでよく見えるようにレイアウトとコードを一度書きたいと思います。 私はDPを使い、複数のレイアウトファイルを追加するなど、多くの方法を試しましたが、ランダムに新しいデバイスがあるたびに新しい状況に対処しなければならないという問題は本当に解決できません解像度と密度。 DPの使用法は、ディメンションをルーラーのようなすべての画面で同じにするXMLトリックです(たとえば、1cmはすべての画面で1cmのままです)ので、実際は解決策ではありません。アンドロイド画面の断片化を処理する方法は?
また、正しいサイズと位置を設定するためにウェイトとコードトリックを使用しましたが、このような単純な作業にはあまりにも多くの作業が必要です。
私はこの問題の解決策と新しいアイスクリームサンドイッチバージョンのバージョンの断片化に取り組んでいたと聞いたことがありますが、このことについては何も聞いたり聞いたりしませんでした。 ないだけでなく、Androidのニーズをサポートするために、複数の密度のチャート&解像度がますます大きくなっている。 http://developer.android.com/guide/practices/screens_support.html
それは非常に多くの他の技術は、すでにこの問題の解決策を持っていたことは残念だ:リンゴが(それを持っていますiphone 3gからiphone 4へのアプリケーションの自動拡張)、Adobe(Flash)、Microsoft(Silverlight、WPF、WP)のビューボックスを使用しています。テレビでさえこの問題を処理しなければならず、彼らはそれをうまくやっています。
私は魔法を求めているわけではありません。ビューのサイズがW%、スクリーンのH%で、スクリーンのX%、Y%の位置にある場合は、すべての画面でこのようにしておく必要があります。また、重要であればアスペクト比を維持できます私たちのために十分です。 なぜ解像度と密度を気にする必要がありますか?私たちとグラフィックチームの両方が混乱するだけです。
結論として、私は多くの人が私のように思うと思うし、誰かがそれをすべて解決するすばらしいSDKを作ったと思う?
@chubbard:それは物事がちょうど定規として正確にすべての画面で同じに滞在できるようになるので、DPがうまく動作しません。画面の3/4に何かがあった場合、それは別の画面にも表示されません(画面の外にあっても、選択したレイアウトに応じて別の奇妙なことが起こることさえあります)。 DPは固定値であり、密度のみに基づいて各装置の画素に変換されるだけである。したがって、wvga800(hdpi-480x800)とwvga854(hdpi-480x854)の違いは、DPに何も変更されず、54ピクセルが得られます。 wvga854のために何かを配置したい場合は、wvga800のために表示されません。さらに悪いことに、アンドロイドのレイアウトについて話すときに、2つの画面の間に違いはありません。彼らはどちらも同じカテゴリのnormal-hdpiの下にあります。
また、DPを使用すると、画像/ボタンは画面に表示されますが、他の画面では画面の他の部分と比べて非常に小さく見えるので、本当に良い解決策にはなりません。 私は、なぜ密度に依存するように設定された複数の描画可能なフォルダを持っているのかわかりません。それはグラフィックスチームのためのより多くの仕事をして、それよりもはるかに大きなサイズにするアプリを作るため、市場はそれを受け入れることができない(大きすぎるため)または悪い - デバイスはアプリケーションをダウンロードすることができます(例えば、銀河Sの古いOSバージョン、&は30MB以上のサイズのアプリケーションをダウンロードできません)。
@adamp:私はabsoluteLayoutについて何も言いませんでした。それは私が残りのレイアウトとして克服したい、正確な悪い振る舞いを持っています。何らかの形でスケーリングが可能な唯一のレイアウトは、(重みを使用して)linearLayoutですが、単純な作業を行うには多くのタグと文章が必要です。 私がしたいことについて、私はすでにそれを書いています。あなたがそれがうまくフラッシュでも動作することを見ることができるインターネット上の例のトンがあります。フルウィンドウのフラッシュ/シルバーライトのコンテンツを開き、ウィンドウのサイズを変更するだけです。プログラマーが正しく設定していれば、その中のすべてが元のサイズに比べて新しいサイズに応じて拡大縮小されます。 btw、gridlayoutのメモをありがとうございます。私はそれを知らなかった。しかし、それはまた、何も拡大縮小できないようです。
@andreasg:今これは興味深いものです。どのように画像を扱ったのですか?あなたは次の「謎」を試してみていただけますか? 画面に合った(そしてアスペクト比を維持する)人の顔(またはアンドロイド:)のイメージがあり、その目の別のイメージが別の色で表示されているとしますあなたが風景モードやポートレートモードになっていても、すべてのデバイスで同じ(スケーリングされた)ように見えるように、もう一方の上に(おそらくframelayoutを使用して)各画面サイズのために右のスケールでカスタムビューを描画する
なぜ私はdpが解決策ではないのかをあなたの推論に結びつけません。 dpを使用しても期待される結果が得られなかった具体的な状況を記述できますか? – chubbsondubs