-
[안드로이드 kotlin] 토스트 메시지 사용하기안드로이드(kotlin)/기능 관련 2020. 1. 4. 16:16
토스트 메시지에 대해서 정리해보려고 합니다.
사용자에게 간단하게 정보를 보여주기 위해서 종종 사용되는 기능입니다.
토스트 메시지는 기본 토스트 메시지와 커스텀 메시지로 보여줄 수 있습니다.
소스를 보고싶으신 분들은 아래 주소에서 확인하실 수 있습니다.
완성된 소스 : https://github.com/dailyshow/kotlinToast.git
기본 토스트 메시지 사용 방법
< activity_main.xml >
12345678910111213141516171819202122<?xml version="1.0" encoding="utf-8"?><LinearLayout 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"android:orientation="vertical"tools:context=".MainActivity"><Buttonandroid:id="@+id/btn1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="기본 토스트" /><Buttonandroid:id="@+id/btn2"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="커스텀 토스트" /></LinearLayout>cs < MainActivity.java >
123456789101112class MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)btn1.setOnClickListener {var t1 = Toast.makeText(this, "토스트 메시지", Toast.LENGTH_SHORT)t1.show()}}}cs < 결과 화면 >
하단 가운데에 토스트 메시지가 잠깐 나타났다가 사라집니다. 나타나는 시간을 조정하시고싶다면
Toast.makeText(this, "토스트 메시지", Toast.LENGTH_SHORT) 부분에서 세 번째 인자부분인 Toast.LENGTH_SHORT 대신에 Toast.LENGTH_LONG으로 변경해주시면 조금 더 길게 보여지게 됩니다.
커스텀 토스트 메시지 사용 방법
xml 파일은 위와 똑같습니다.
기본 토스트와 다른점은 보여주고 싶은 화면을 하나 더 만들어야 한다는게 다른점이겠네요.
layout 파일을 하나 만들어줍니다.
< custom_toast.xml >
12345678910111213141516171819202122<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><ImageViewandroid:id="@+id/iv"android:layout_width="wrap_content"android:layout_height="200dp"android:src="@drawable/twice" /><TextViewandroid:id="@+id/tv"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="twice"android:textSize="20sp"android:textColor="#000"android:gravity="center"/></LinearLayout>cs 보여주고싶은 사진을 drawable 폴더에 넣어주고 imageview에서 불러오도록 합니다.
< MainActivity.java >
12345678910111213141516171819class MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)btn2.setOnClickListener { view ->var v1 = layoutInflater.inflate(R.layout.custom_toast, null)v1.setBackgroundResource(android.R.drawable.toast_frame)var t2 = Toast(this)t2.view = v1t2.show()}}}cs < 결과 화면 >
커스텀 토스트를 이용해서 화면에 메시지가 잠깐동안 나타나도록 해주었습니다.
이렇게 커스텀 토스트를 이용하면 그림도 보여줄 수 있게됩니다.
setBackgroundResource 를 이용하면 토스트 메시지의 배경도 지정할 수 있습니다.
위 예제에서는 android.R.drawable.toast_frame 를 이용했기 때문에 회색의 배경색이 나타났습니다.
여기에 추가적으로 더 수정할 수 있습니다.
이미지와 텍스트를 변경하도록 해봅니다.
< 내용 추가한 MainActivity.java >
12345678910111213141516171819202122232425262728class MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)btn2.setOnClickListener { view ->var v1 = layoutInflater.inflate(R.layout.custom_toast, null)v1.setBackgroundResource(android.R.drawable.toast_frame)var image: ImageView = v1.findViewById(R.id.iv)image.setImageResource(R.mipmap.ic_launcher)var text: TextView = v1.findViewById(R.id.tv)text.text = "토스트"text.setTextColor(Color.BLACK)var t2 = Toast(this)t2.setGravity(Gravity.CENTER, 0, 400)t2.view = v1t2.show()}}}cs < 결과 화면 >
이미지, 글자, 토스트 위치가 변경되었습니다.
'안드로이드(kotlin) > 기능 관련' 카테고리의 다른 글
[안드로이드 kotlin] webview 버튼 선택시 외부 브라우저가 실행되지 않도록 하기 (0) 2022.09.23 [안드로이드 kotlin] camera, gallery URI 확인 및 주의할 점 (0) 2022.04.12 [안드로이드 kotlin] retrofit 으로 내용이 비어있는 jsonoObject 요청 보내기 (0) 2021.12.12 [안드로이드 kotlin] 소프트 키보드 내리기(activity, custom dialog) (0) 2021.05.04 [안드로이드 kotlin] MediaPlayer 와 SoundPool (0) 2019.12.19