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

背景画像を表示してみる、その前に

前回、Androidが端末の解像度に合わせて画像ファイルを選択してくれる方法の導入をしてみました。だが、しかーーーーし!!ちょっとミスがあったみたいです…。前回のまま実行したらこんなエラーで怒られました…。やっぱちゃんと実行してからやらないとダメですね。うっかりでした。

resource names must contain only lowercase a-z, 0-9, or underscore!!!!!!

あ、「小文字」「0〜9」と「_」だけってか。
ってことでファイル名を「background.png」に直しました。そしたらとりあえずエラーは消えてくれました。

メリ
ヒヤヒヤさせるわね。
にゃんこ
そこまでか!?

問題の記事

Androidアプリを作ってみる #10 -画面サイズについて-

2016.10.17

やっと本題

いよいよ画像をアプリに表示してみます。一番簡単な方法は、ImageViewというリソースを使ってしまうこと。それをやってみます。

まずは、前回も登場している「activity_main.xml」ファイルです。これを以下のように「ImageView」を追加します。ちなみに「com.sumesi.gamedemo.」の部分はプロジェクトごとに違いますよ。sumesiってあるから分かると思いますけど。

以前のものからプロジェクトを新しく作り直しているので、前々回の記述と違いまっさら状態からやり直してます。デフォルトから直したのは「RelativeLayout」を「LinearLayout」に変更したのと「android:orientation=”vertical”」を追加しただけです。

ImageViewの説明

android:id

これは、プログラム(Java)で使うときの識別子と思って大丈夫です。っていうかそう言う意味です。後で出てきます。id名は任意で決められます。が!id1、id2とかはやめましょう。それでもできるんですけどね。ちょっとね。ちょっとアレです。

メリ

android:layout_width(height)

これは、Imageを表示する範囲って言ったらいいですかね。例えばここを「match_parent」にすると親(ここだとactivity_main)に幅と高さを合わせるってことです。で、ここで設定しているのは、「wrap_content」です。これはリソースの幅、高さを自動で合わせてくれるんだそうな。自分の解釈では、「画像の幅、高さに合わせて表示」です。いいのかな。多分そうでしょう。

メリ
相変わらずテキトーね。

android:scaleType

これは、リソース(画像)の表示位置です。「fitCenter」なんで、画面の中心ですね。

JavaからImageViewを読み込むのだ

ImageViewの設定が済んだので、今度はJavaプログラムから読み込んで表示させてみます。以下はデフォルト状態の「MainActivity.java」の「onCreate()」です。

ここに以下を追加します。

findViewById

これは前も出てきましたね。ImageViewのidからImageViewを呼び出してます。これで「imgView」という箱(変数という)を使って、いろいろ設定とかができたりします。それをやってるのがその下になります。

setImageResource()

imgView」から「setImageResource()」という機能(メソッドという)を呼び出してます。これはImageViewに画像を貼り付けろという命令です。その画像を「background」に指定しています。

取り込んだ画像は「drawable」というフォルダに入れたので、指定が「R.drawable.background」になります。拡張子はつけないのが決まりです。Rはつける決まりと覚えましょう。

よし、それでは実行してみましょう。

なんか変だぞ!?

なんか変だぞ!?

あ、あれ!?なんか変ですね。画面いっぱいに広がリンクみたいなのをイメージしましたが…。なんでダメなんでしょう。ふーまた調べる旅に出ます。

メリ
いろいろ大変ね。

次の記事

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

2016.11.06

前回の記事

Androidアプリを作ってみる #11 -MacでAndroid-

2016.10.29



コメントを残す

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