3枚の画像を切り替え、ToastTextを表示するアプリ。ToastTextを大きくし、色を変えました。

前回の記事　https://qiita.com/KToushi/items/cc067160b9ea3590bf0e　Toast 文字大きく表示させたい Android Studio　　メモ

ではlayoutでButtonのonClick　fade　として
Javaでfadeメソッド定義して画像の切り替わり、ToastTextを大きく表示を
やろうとしてうまくいきませんでした。

今回はlayoutのonClickではなく、JavaでsetOnClickListenner()　　・・・メソッド？
のコードを入力して設定していくやり方があるみたいなのでやってみます。

参考記事
https://akira-watson.com/android/button.html



↓前回のコード

package com.example.rswitch;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

//boolean ブーリアン　　trueかfalseが入る型
//isShowing  画面に表示されているか判定

//画像re1,re2　は画面に表示されているとコンピューターに判定させる
boolean re1IsShowing = true;
boolean re2IsShowing = true;



public void fade (View view) {

    //Javaの変数re1, re2, re3をxmlの　id とそれぞれ紐づけ　　
    // 紐付けしないとアニメーションが実行されない
    ImageView re1 = findViewById(R.id.re1);
    ImageView re2 = findViewById(R.id.re2);
    ImageView re3 = findViewById(R.id.re3);

    if(re1IsShowing) {

        //swichボタン押した後、画像re1は表示されていないと判定させる
        re1IsShowing = false;

        re1.animate().alpha(0).setDuration(1000);
        re2.animate().alpha(1).setDuration(1000);

        Toast.makeText(this, "かわいい？", Toast.LENGTH_LONG).show();


    } else if(re2IsShowing) {

        //swichボタン押した後、画像re2は表示されていないと判定させる
        re2IsShowing = false;

        re2.animate().alpha(0).setDuration(1000);
        re3.animate().alpha(1).setDuration(1000);

        Toast.makeText(this, "遊んで～", Toast.LENGTH_LONG).show();


    } else {

        re1IsShowing = true;
        re2IsShowing = true;


        re3.animate().alpha(0).setDuration(1000);
        re1.animate().alpha(1).setDuration(1000);

        Toast.makeText(this, "似合う？", Toast.LENGTH_LONG).show();
    }



}


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);





}
}





直したコードがこちら↓

package com.example.rswitchtoastarrange;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;

import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;


public class MainActivity extends AppCompatActivity {

    //boolean ブーリアン　　trueかfalseが入る型
    //isShowing  画面に表示されているか判定

    //画像re1,re2　は画面に表示されているとコンピューターに判定させる
    boolean re1IsShowing = true;
    boolean re2IsShowing = true;





    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        //Javaの変数re1, re2, re3をxmlの　id とそれぞれ紐づけ　　
        // 紐付けしないとアニメーションが実行されない
        ImageView re1 = findViewById(R.id.re1);
        ImageView re2 = findViewById(R.id.re2);
        ImageView re3 = findViewById(R.id.re3);

        TextView text = new TextView(getApplicationContext());

        Button switchButton = findViewById(R.id.switchButton);

        switchButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                if(re1IsShowing) {

                    //swichボタン押した後、画像re1は表示されていないと判定させる
                    re1IsShowing = false;

                    re1.animate().alpha(0).setDuration(1000);
                    re2.animate().alpha(1).setDuration(1000);

                    text.setText("かわいい？");
                    text.setTextSize(30);

                    Toast toast = new Toast(getApplicationContext());
                    toast.setView(text);
                    toast.setDuration(Toast.LENGTH_LONG);
                    toast.show();


                } else if(re2IsShowing) {

                    //swichボタン押した後、画像re2は表示されていないと判定させる
                    re2IsShowing = false;

                    re2.animate().alpha(0).setDuration(1000);
                    re3.animate().alpha(1).setDuration(1000);

                    text.setText("遊んで～");
                    text.setTextSize(30);

                    Toast toast = new Toast(getApplicationContext());
                    toast.setView(text);
                    toast.setDuration(Toast.LENGTH_LONG);
                    toast.show();


                } else {

                    re1IsShowing = true;
                    re2IsShowing = true;


                    re3.animate().alpha(0).setDuration(1000);
                    re1.animate().alpha(1).setDuration(1000);

                    text.setText("似合う？");
                    text.setTextSize(30);

                    Toast toast = new Toast(getApplicationContext());
                    toast.setView(text);
                    toast.setDuration(Toast.LENGTH_LONG);
                    toast.show();
                }


            }
        });







        }



    }



これでRunすると

エラー: ローカル変数re1は内部クラスからアクセスされます。finalで宣言される必要があります	
エラー: ローカル変数re2は内部クラスからアクセスされます。finalで宣言される必要があります	
エラー: ローカル変数textは内部クラスからアクセスされます。finalで宣言される必要があります	
エラー: ローカル変数textは内部クラスからアクセスされます。finalで宣言される必要があります	
エラー: ローカル変数textは内部クラスからアクセスされます。finalで宣言される必要があります	
エラー: ローカル変数re2は内部クラスからアクセスされます。finalで宣言される必要があります	
エラー: ローカル変数re3は内部クラスからアクセスされます。finalで宣言される必要があります	
エラー: ローカル変数textは内部クラスからアクセスされます。finalで宣言される必要があります	
エラー: ローカル変数textは内部クラスからアクセスされます。finalで宣言される必要があります	
エラー: ローカル変数textは内部クラスからアクセスされます。finalで宣言される必要があります	
エラー: ローカル変数re3は内部クラスからアクセスされます。finalで宣言される必要があります	
エラー: ローカル変数re1は内部クラスからアクセスされます。finalで宣言される必要があります	
エラー: ローカル変数textは内部クラスからアクセスされます。finalで宣言される必要があります	
エラー: ローカル変数textは内部クラスからアクセスされます。finalで宣言される必要があります	
エラー: ローカル変数textは内部クラスからアクセスされます。finalで宣言される必要があります	

とエラーになりました。

内部クラス（インナークラス）とはクラスの中に定義したクラスのことを言うみたいです。
どこが内部クラスでどこが外部クラスなのかわかりません・・・。

finalとはfinal修飾子のことで
1度変数に設定した値をあとから変更できなくするもののようです。

Imageview
TextView
にfinalつけたらエラーなく、
Toastの文字も大きくなりました。

ついでに文字の色も変えてみました。




コード↓

package com.example.rswitchtoastarrange;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;
import android.view.View;

import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;


public class MainActivity extends AppCompatActivity {

    //boolean ブーリアン　　trueかfalseが入る型
    //isShowing  画面に表示されているか判定

    //画像re1,re2　は画面に表示されているとコンピューターに判定させる
    boolean re1IsShowing = true;
    boolean re2IsShowing = true;





    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        //Javaの変数re1, re2, re3をxmlの　id とそれぞれ紐づけ　　
        // 紐付けしないとアニメーションが実行されない
        final ImageView re1 = findViewById(R.id.re1);
        final ImageView re2 = findViewById(R.id.re2);
        final ImageView re3 = findViewById(R.id.re3);

        final TextView text = new TextView(getApplicationContext());

        Button switchButton = findViewById(R.id.switchButton);

        switchButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                if(re1IsShowing) {

                    //swichボタン押した後、画像re1は表示されていないと判定させる
                    re1IsShowing = false;

                    re1.animate().alpha(0).setDuration(1000);
                    re2.animate().alpha(1).setDuration(1000);

                    text.setText("かわいい？");
                    text.setTextSize(40);
                    text.setTextColor(Color.MAGENTA);

                    Toast toast = new Toast(getApplicationContext());
                    toast.setView(text);
                    toast.setDuration(Toast.LENGTH_LONG);
                    toast.show();


                } else if(re2IsShowing) {

                    //swichボタン押した後、画像re2は表示されていないと判定させる
                    re2IsShowing = false;

                    re2.animate().alpha(0).setDuration(1000);
                    re3.animate().alpha(1).setDuration(1000);

                    text.setText("遊んで～");
                    text.setTextSize(40);
                    text.setTextColor(Color.MAGENTA);

                    Toast toast = new Toast(getApplicationContext());
                    toast.setView(text);
                    toast.setDuration(Toast.LENGTH_LONG);
                    toast.show();


                } else {

                    re1IsShowing = true;
                    re2IsShowing = true;


                    re3.animate().alpha(0).setDuration(1000);
                    re1.animate().alpha(1).setDuration(1000);

                    text.setText("似合う？");
                    text.setTextSize(40);
                    text.setTextColor(Color.MAGENTA);

                    Toast toast = new Toast(getApplicationContext());
                    toast.setView(text);
                    toast.setDuration(Toast.LENGTH_LONG);
                    toast.show();

                }


            }
        });







        }



    }


最初に作った時のアプリ（動画）
https://twitter.com/KToushi/status/1218912619051900930?s=20

今回ToastTextの大きさと色を変えた場合のアプリ（動画）
https://twitter.com/KToushi/status/1221729488255377408?s=20