1

いくつRelativeLayoutかのコントロールが含まれているがあります。一部の画面では、このレイアウトや他の画面要素のための十分なスペースがない場合があります。この場合、一部のコントロールを除外し、パディングが少ない代替レイアウトを使用したいと思います。

どうすればこれをパフォーマンスの高い方法で実装できますか?小さい方のレイアウトは、大きい方のレイアウトが確実に収まらない場合にのみロードする必要があります。レイアウトが収まるかどうかは、画面の幅と高さ、および追加の表示可能なコントロールの関数であり、複雑になりすぎるように思われるため、さまざまな画面サイズ修飾子を使用したくありません。

4

2 に答える 2

2

個人的には、新しい画面サイズ修飾子を使用する必要があると思います。それが Android の設計方法であり、そのルールに従うべきだと思います。また、開発プロセス全体がはるかに簡単になる可能性が非常に高いです!


しかし、あなたがそれを自分で行うことを主張する場合、それを「ハードコード」するために私が考えることができる唯一の方法は、次のようなものになります:

ステップ 1: 画面サイズを取得する

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;

または、より低い API レベルをターゲットにしている場合:

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();  // deprecated
int height = display.getHeight();  // deprecated

ステップ 2: 画面サイズに応じて別のレイアウトを選択する

if(width < value_x_small && height < value_y_small){
        setContentView(R.layout.main_small);

} else if(width > value_x_small && height > value_y_small){
        setContentView(R.layout.main_large);

} else {
        setContentView(R.layout.main_larged);

}

このコードを使用すると、px 単位の画面サイズに応じて独自のリソースを選択できます。おそらく、px 値を DP (DPI) に変換し、それらを使用して決定を下す方がよいでしょう。また、現在の画面の向きにチェックを追加することもできます。

于 2012-08-22T08:31:57.830 に答える
0

コントロールを個別Fragmentsに実装し、画面サイズに応じて配置できます。Fragments とその設計理念についての詳細は、こちらをご覧ください。

于 2012-08-22T08:17:21.753 に答える