0

画面に複数の同じサイズの画像を表示するアプリに取り組んでいます。ただし、スクロールを提供せずに、できるだけ多くの画像のみを表示する必要があります。

たとえば、「大きな」タブレットでは、10x10 の Imageviews を表示できます (画面が大きいため、写真用のスペースがたくさんあります)。

「大きな」電話では、6x6 ImageViews を表示するのに十分なスペースがある場合があるため、6x6 配列の画像のみを表示する必要があります。

小型の電話では、おそらく 4x4 の ImageView 用のスペースしかないため、これだけを表示する必要があります。

Androidでこれを作成するにはどうすればよいですか?「layout-large」については知っていますが、「大きな」デバイス用に特別に固定された xml-layout を作成すると、すべてのデバイスに正しく適合するとは限りません。たとえば、Galaxy Nexus は「通常の」デバイスであり、Nexus One も同様ですが、Galaxy Nexus には、Nexus One よりも少なくとも 1 つまたは 2 つのイメージビュー行のスペースがあります。それで、解像度の大きさをコードで測定し、それに応じていくつかの TableRows を表示する必要がありますか? または、これを管理する特別な方法はありますか?

4

2 に答える 2

0

これを管理するには、GridViewを使用する必要があります。

GridViewAndroid開発者

編集:そして確かにTomasz Gawelが言ったように:notice the GridView's android:numColumns="auto_fit" xml attribute

編集:スクロール可能にしたくないので、画面サイズを取得し、それをアイテムのサイズで割って、グリッドビューに表示したい数のアイテムだけを入れることができます。グリッドビューは、表示できるよりも多くのアイテムがある場合にのみスクロールします。

getResources().getDisplayMetrics().widthPixels and heightPixels
于 2012-06-01T22:39:22.120 に答える
0

サイズ、密度など、デバイスの画面のプロパティを照会できます。サイズがわかったら、使用するレイアウトを選択できます。

このスタックオーバーフローの投稿を見てください。Android: 画面サイズを取得する方法

于 2012-06-01T21:40:53.167 に答える