Androidアプリを作ってみる #13 -画像の表示 その2-

前回うまくいかなかった画像表示

前回アプリを起動したらこんなになってて、なんか腑に落ちないような微妙な空気で終了してしまいましたね(画像が画面いっぱいに広がって表示されていない)。今回はそれのリベンジをしたいと思います。

なんか変だぞ!?

微妙で腑に落ちないやつ

前回の記事

Androidアプリを作ってみる #12 -画像の表示-

2016.11.05

何が悪いのか?

まず、怪しいのがアプリのレイアウトにある余白設定です。「activity_main.xml」を見てみます。

余白設定は、上の記述の「android:paddingXXXXX」の部分です。上下左右の4つですね。デフォルトでは「@dimen/activity_horizontal_margin」になってますね。これはres->values->dimes.xmlに設定されている数値ですね。「16dp」となってました。これを「0dp」に設定すりゃいいのかな。

ダメだった…。じゃこれはこのままにして、次に怪しいのが「ImageView」の「fitCenter」ですね。他の設定を調べたら「fitXY」というのがあるのがわかった。これは仕様は以下です。

Scale the image using FILL.
FILL:Scale in X and Y independently, so that src matches dst exactly. This may change the aspect ratio of the src.

X、Yのスケールを変更して画像をImageViewに合わせてくれるって感じがします。テキトーに訳すと。よし「fitXY」にしてみよう。あと、「android:layout_width(height)」もですね。画像に合わせるってより、この場合「activity_main」に合わせるのが筋のような気がします。多分。

にゃんこ
たぶんが多いブログだな。

ってことで、ここは親要素に合わせるという意味の「match_parent」にします。

まとめるとこうなります。

でけた

でけた

でも、横にするとおデブになりますね(笑)。

なんか潰れてます。

なんか潰れてます。

おそらくこの辺はもっといいやり方とか計算でなんとかするとか方法はありそうですが、今回はゲームで縦専用とすることでOKとしましょう。

メリ
えええ。

縦専用にしてみる。

これはJava側で設定します(他にも設定方法はあります)「MainActivity.java」のまたまた「onCreate()」です。アプリの初期設定は大体ここでやると覚えましょう。

にゃんこ
なんでよ?
メリ
そこはハイって言いなさいって。

ここに「setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);」を追加します。これは字のままですね。Orientationは「向き」ってことなので、向きをアプリにリクエストしているわけです。そのリクエストの内容が「ActivityInfo.SCREEN_ORIENTATION_PORTRAIT」です。portraitは「長方形の用紙の短い辺を水平に、長い辺を垂直に配置する置き方」の意味でそれをSCREEN(画面)にしてくれと命令してるわけですね。ちなみに横なら「ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE」になります。

これで無事に縦専用になりましたとさ。今回はなんかズルをしたなという視線を若干感じますが、一件落着ということで…。と安心したのも束の間…。どうやらゲームを作る場合はこのやり方だとあまり良くないということがわかってきました。それはまた次回に。

次の記事

Androidアプリを作ってみる #14 -Surfaceview?-

2016.11.15

前回の記事

Androidアプリを作ってみる #12 -画像の表示-

2016.11.05



コメントを残す

メールアドレスが公開されることはありません。