【AndroidStudio】アプリ背景に任意の画像を設定する【Java】

元画像(左)と画面サンプル(右)
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705721/ba647370-215f-c978-8146-db8ba0d0a2a2.jpeg" width=45%>  <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705721/05146409-067c-3f31-9966-543b4bb38171.jpeg" width=45%>
##はじめに
画像を用意してください。著作権フリーのものか自身が作成したものがいいと思います。
著作権フリーの場合でも利用制限を確認してください。
[illustAC](https://www.ac-illust.com/main/search_result.php?word=%E8%91%97%E4%BD%9C%E6%A8%A9%E3%83%95%E3%83%AA%E3%83%BC)
[illust image](https://illustimage.com/)
[いらすとや](https://www.irasutoya.com/)　　などなど　
画像を表示させる方法はいくつかあるみたいですが、この記事は drawable にファイルを置き、それを ImageView に書き込んで終了です。
##drawable フォルダ
練習用に TestImageView というプロジェクトを用意しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705721/53b6dff1-a8c3-a3d9-2c5d-67454ef73b37.png)
**app → res → drawable**
drawable を右クリック、**Show in Explorer** をクリックし**drawable-v24 フォルダを展開**、ここに使用する画像を置いてください。
AndroidStudio の drawable フォルダを開いて画像ファイルがあればOKです。
なお、Java の変数命名規則が働いていると思われます。数値から始まるファイルは置けませんので、その場合はファイル名を変更してください。
##.xml ファイル

```java:actixity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/momizi"/>

</androidx.constraintlayout.widget.ConstraintLayout>
```
上記のコードで表示されたのがこちらの画面。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705721/71bcabc2-552b-3f0b-d35d-177043486103.jpeg" width=50%>
ちょっと、、上下のサイズが合ってないですね。。大丈夫です、なんとかなります。下に進んでください。
この段階で「java.lang.RuntimeException: Canvas: trying to draw too large(******bytes) bitmap.」というエラーが出る場合は、画像サイズが大きいです。
画像を小さくしてみましょう。
[オンライン画像サイズ変更](https://www.iloveimg.com/ja/resize-image)
##ImageView.ScaleType
Qiita のこちらの記事が参考になります。
[【ImageView】ScaleTypeと表示画像の対応表](https://qiita.com/tkhs0604/items/76bd3c979ae3c0c1570c)
上記のコードの ImageView に android:scaleType="centerCrop" を追記しました。

```java:actixity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/momizi"
        android:scaleType="centerCrop"/>

</androidx.constraintlayout.widget.ConstraintLayout>
```
上記のコードで表示されたのがこちらの画面。
上下左右共に画面に合いました！
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705721/05146409-067c-3f31-9966-543b4bb38171.jpeg" width=50%>

##参考
[nyanのアプリ開発（[Android] ImageView 画像を表示させる３つの方法）](https://akira-watson.com/android/imageview.html)
[nyanのアプリ開発（[Android] ImageView画像をScreenのレイアウトにフィットさせるには）](https://akira-watson.com/android/imageview_scaletype.html)
[【ImageView】ScaleTypeと表示画像の対応表](https://qiita.com/tkhs0604/items/76bd3c979ae3c0c1570c)