안드로이드 with 자바/자잘한 문제들

Toast 직접 만들어 표시하기.

백_곰 2022. 1. 6. 16:37

1. 구현해야 할 것

: 버튼을 누를 시, 아래의 노랑 테두리 박스가 나타면서 "모양 바꾼 토스트" 출력하기

 

 

 

 

 

2. MainActivity.java

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

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

        LayoutInflater layoutInflater = getLayoutInflater();

        View layout = layoutInflater.inflate(
                R.layout.toastboarder,
                (ViewGroup) findViewById(R.id.toast_layout)
        );
        
        TextView tv1 = layout.findViewById(R.id.tv1);
        Toast toast = new Toast(this);
        tv1.setText("모양 바꾼 토스트");
        toast.setGravity(Gravity.CENTER, 0, -100);
        toast.setDuration(Toast.LENGTH_SHORT);
        toast.setView(layout);

        Button btn = findViewById(R.id.button);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                toast.show();
            }
        });

    }
}

 

 

 

 

2. activity_main.xml

: 기본 값

 

 

 

 

3. toastborder.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toast_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="10dp"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/tv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/toast"
        android:padding="20dp"
        android:textSize="20sp" />

</LinearLayout>

 

 

 

 

4. @drawable/toast.xml

<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <stroke
        android:width="4dp"
        android:color="#ffffff00"/>
</shape>