투케이2K

525. (Android/Java) [유틸 파일] toastLongNormal : 커스텀 토스트 메시지 디자인 변경 출력 본문

Android

525. (Android/Java) [유틸 파일] toastLongNormal : 커스텀 토스트 메시지 디자인 변경 출력

투케이2K 2023. 3. 28. 20:19

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

 

==============================================
[drawable >> custom_normal_toast_bg.xml]
==============================================

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <!-- 테두리 부분 -->
    <stroke
        android:width="3dp"
        android:color="#003399" />

    <!-- 배경색 부분 -->
    <solid
        android:color="#003399" />

    <!-- 패팅 부분 -->
    <padding
        android:left="15dp"
        android:bottom="15dp"
        android:right="15dp"
        android:top="15dp" />

    <!-- 테두리 모서리 부분 둥글게 설정 -->
    <corners
        android:radius="30dp" />

</shape>






==============================================
[layout >> custom_normal_toast.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:orientation="vertical" >

    <TextView
        android:id="@+id/toast_textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="17dp"
        android:textStyle="normal"
        android:textColor="#ffffff"
        android:background="@drawable/custom_normal_toast_bg" />

</LinearLayout>






==============================================
[java source code]
==============================================

    // TODO [SEARCH FAST] : [토스트 일반 메시지]
    public static void toastLongNormal(Context mContext, String msg){
        try {
            new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
                @Override
                public void run() {
                    LayoutInflater inflater = LayoutInflater.from(mContext);
                    View layout = inflater.inflate(R.layout.custom_normal_toast, null);
                    TextView toast_textview  = layout.findViewById(R.id.toast_textview);
                    toast_textview.setText(String.valueOf(msg));
                    Toast toast = new Toast(mContext);
                    //toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); //TODO 메시지가 표시되는 위치지정 (가운데 표시)
                    //toast.setGravity(Gravity.TOP, 0, 0); //TODO 메시지가 표시되는 위치지정 (상단 표시)
                    //toast.setGravity(Gravity.BOTTOM, 0, 0); //TODO 메시지가 표시되는 위치지정 (하단 표시)
                    toast.setDuration(Toast.LENGTH_LONG); //메시지 표시 시간
                    toast.setView(layout);
                    toast.show();
                }
            }, 0);

        }
        catch (Exception e){
            e.printStackTrace();
        }
    }

 

반응형
Comments