質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

1回答

5156閲覧

androidのさまざまな画面サイズ対応

退会済みユーザー

退会済みユーザー

総合スコア0

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

1クリップ

投稿2019/04/12 02:50

前提・実現したいこと

今Androidのアプリを作っているのですが、特定の画面サイズ(1280x800,2560x1600)などでしか正しく表示されないようになっており、他の解像度(1080x1920)などにするとレイアウトが崩れてしまいます。

そこで、画面サイズ対応したいと思い、やり方を調べていたのですが、hdpi,mdpi,xhdpiなどで画面密度に合わせて複数サイズ画像を用意するといったことはわかったのですが、xmlで画面を作成するときのやり方でわからないことが2つあります。

1 1080x1920など今のレイアウト(1280x800)と違う場合、別にxmlを用意するのか

2 ConstraintLayoutを使った場合複数サイズを一緒にできるのか
また、作る際は画像サイズなどはwrap_contentなどで自動的に縮小拡大してくれるのか、constraintの設定はどうやるのか

ConstraintLayoutパートでレスポンシブUIを構築しますを読んで見たのですが、やり方がわかりませんでした。

他人頼みな質問になってしまいますが、ご存知の方いましたら教えていただけませんでしょうか
よろしくお願いいたします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

画面の比が同じ(1.6:1の)端末でしかレイアウトが正しく表示されないとのことなので、おそらく各Viewを置いただけ、という状態なのかなと思います。

まずは、Androidのレイアウトの仕方の基本をやってみるのはいかがでしょうか。

HTML・CSSの組み方とも違い、慣れるまでは大変です…。

投稿2019/04/12 08:35

sussan0416

総合スコア41

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/04/15 02:49 編集

回答ありがとうございます 貼っていただいたリンクの内容を読んでみましたが疑問は解消されませんでした。がリンク先の中にあったlayout_weightが近いのではと思ったのでそれでやってみようと思います 今の状況としては画面比が同じ端末でしか表示できない理由はConstraintのmarginをハードコーディングしているのでそれで外にはみ出しているのではと思っています 画像サイズは全てwrap_contentを指定しているのですが、小さくならずはみ出してしまっています
sussan0416

2019/04/15 02:52

返信ありがとうございます! その症状ですと、おそらく、wrap_contentで指定していることが原因と思われます。 こちらの記事が参考になるかもしれません。 http://yuki312.blogspot.com/2017/03/constraintlayout.html widthやheightを、0dpで指定すると `match_constraint` として扱います。 Constraintの制約の範囲内で、最大限の大きさにViewを引き伸ばす指定です。 0dpで指定、こちらでいががでしょうか。
退会済みユーザー

退会済みユーザー

2019/04/15 04:08 編集

返信ありがとうございます 最後に2つだけお聞きしたいのですが、 1 0(match_constraint)にするとサイズが0になって表示がされなくなってしまうのですが、そういった場合は制約がうまくできていないのでしょうか? 2 constraintlayoutやLinearLayoutなどいくつかのレイアウトを組み合わせて使うことはあるのか よろしくお願い致します
sussan0416

2019/04/15 06:15 編集

(1について) 制約がうまくできていないことが原因だと思いますが、マージンをハードコーディングしていることが原因ではないと思いますね……。 もし貼れるようでしたら、XMLを貼っていただけると助かります。 レイアウトのXMLを編集するとき、GUIかテキストエディタを選べると思います。 GUIの画面だと、エディタ上部に端末のマークがあります。 プレビューの端末を変更できるので、どういう条件で失敗するかわかることもあるので便利かと思います。 (2について) 大体のデザインは基本的にはConstraintLayoutのみで解決できると思います。 ConstraintLayoutの中で他のレイアウトを使うこともありますが、本来の使い方ではないと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問