- ベストアンサー
画面サイズに依存せずアイコンを配置する方法
- 画面サイズに依存せずアイコンを美しく配置する方法について解説します。
- スマートフォン用のアプリ開発において、画面サイズに合わせてアイコンを配置する方法を調査しました。
- JavaやC#を使用し、AndroidSDKやiPhoneSDKを使わずにアイコンの配置を調整する方法をご紹介します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>上記コードで実現できることを確認しました ん・・・。まあ、修正すれば実現できますが、イメージなのでコードは不正確です(^^;) >ここで一つ制約があるのですが、他のput(icon2)から他のアイコン(icon1やicon3)の設定後の座標を知ることができません >この状態で、すべてのアイコンを整列させる関数putはどのように作成すればよいでしょうか put(icon) は描画対象のアイコンを記憶する関数とします。 それとは別の関数で座標計算とアイコンの描画を行うこととします。 // icon は配列にする。 struct icon icon[9]; index = 0; void put(struct icon p) { icon[index++] = p; } void draw() { // 座標計算する // 画面サイズの高さ、幅を取得し3分割した高さと幅を求めセルのサイズとする。 cellWidth = screen.width / 3; cellHight = screen.hight / 3; // セル上のアイコンの lx, ly を求める。 iconPosX = cellWidth / 2 - 10; iconPoxY = cellHight / 2 - 10; // 行、列ごとの座標を求める for (row = 0; row < 3; row++) for (column = 0; column < 3; column++) { icon[row*3+column].lx = iconPosX + (cellWidth * column); icon[row*3+column].rx = icon[i].lx + 20; icon[row*3+column].ly = iconPoxY + (cellHight * row); icon[row*3+column].ry = icon[i].ly + 20; // [row, column](icon) // [0, 0](0) [0, 1](1) [0, 2](2) // [1, 0](3) [1, 1](4) [1, 2](5) // [2, 0](6) [2, 1](7) [2, 2](8) } // 描画する for (i = 0; i < 9; i++) unity.drawObject(icon[i]); }
その他の回答 (1)
- OrangeCup150
- ベストアンサー率62% (109/174)
イメージとしては下のようになると思います。 px = screen.width / 3; // 640/3=213.33333333333334 py = screen.hight / 3; for (i = 0; i < 3; i++) draw(px * i + 5, py * i + 5, icon); // 213 * 0 = 0 + 5 // 213 * 1 = 213 + 5 // 233 * 2 = 466 + 5 まあ、 API の詳細は unity のドキュメントを参照してください。
お礼
回答ありがとうございます 上記コードで実現できることを確認しました しかしunityを使用した場合ある制約上このコードは利用できませんでした 以下おおざっぱなイメージですが、 iconという画像の左上と右下のxとy座標をもつ構造体があるとします struct icon{ float lx = 0.0f; float ly = 0.0f; float rx = 0.0f; float ry = 0.0f; } この構造体のインスタンスを9個作成し、putという自作関数を通すことでアイコンが配置されるとします put(icon1); put(icon2); ~ 呼び元は上のような感じです ここで一つ制約があるのですが、他のput(icon2)から他のアイコン(icon1やicon3)の設定後の座標を知ることができません この状態で、すべてのアイコンを整列させる関数putはどのように作成すればよいでしょうか