공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
이번 포스팅에서는 안드로이드의 Toast message를 custom하는
방법에 대해서 공부합니다.
1. 일반적인 Toast 토스트 메시지 사용
우리는 일반적으로 아래 코드처럼 Toast 메시지를 사용합니다.
1 2 3 4 5 | Context context = getApplicationContext(); CharSequence txt = "메시지입니다."; int time = Toast.LENGTH_SHORT; // or Toast.LENGTH_LONG Toast.makeText(context, txt, time).show(); | cs |
그리고 그 메시지는 디바이스 화면의 중앙 하단에 표시됩니다.
2. Toast 위치 변경하기
토스트 메시지의 위치를 변경할 수 있습니다.
바로 Toast의 setGravity 함수를 이용하면요.
1 2 3 4 5 6 | Context context = getApplicationContext(); CharSequence txt = "메시지입니다."; int time = Toast.LENGTH_SHORT; // or Toast.LENGTH_LONG Toast toast = Toast.makeText(context, txt, time); toast.setGravity(Gravity.CENTER|Gravity.START, 0, 0); toast.show(); | cs |
1번과 바뀐 부분이 보이시나요?
위치속성은
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Gravity.TOP Gravity.BOTTOM Gravity. LEFT Gravity. RIGHT Gravity.CENTER_VERTICAL Gravity.FILL_VERTICAL Gravity. CENTER_HORIZONTAL Gravity. FILL_HORIZONTAL Gravity.CENTER Gravity.FILL Gravity.CLIP_VERTICAL Gravity.CLIP_HORIZONTAL Gravity.START Gravity.END | cs |
등이 있습니다 ㅎㅎ 많네요.
https://developer.android.com/reference/android/view/Gravity.html
위 공식문서에서 더 자세히 확인하실 수 있습니다.
---------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------
3. Custom View 적용하기
마지막으로 기본 View 는 반투명한 회색 배경에 흰 글씨인데요.
이 View도 커스텀해서 적용할 수 있습니다.
우선 코드는 아래와 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 | Context context = getApplicationContext(); CharSequence txt = "메시지입니다."; int time = Toast.LENGTH_SHORT; // or Toast.LENGTH_LONG Toast toast = Toast.makeText(context, txt, time); LayoutInflater inflater = getLayoutInflater(); View view = inflater.inflate(R.layout.custom_toastview, (ViewGroup)findViewById(R.id.containers)); TextView txtView = view.findViewById(R.id.txtview); txtView.setText(txt); toast.setView(view); toast.show(); | cs |
R.layout.custom_toastview 는 토스트 메세지의 레이아웃입니다.
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/containers">
<TextView
android:id="@+id/txtview"
android:layout_width="match_parent"
android:layout_height="120dp"
android:textSize="40sp"
android:textStyle="bold"
android:textColor="@color/black"
android:gravity="center"
android:background="@color/colorAccent"/>
</android.support.constraint.ConstraintLayout>
그리고 R.id.containers 는 위 레이아웃에서 부모 레이아웃의 id 입니다.
별로 어렵지 않죠?
이상입니다.
감사합니다.
'안드로이드' 카테고리의 다른 글
안드로이드 코틀린에 setOnClickListener 사용방법! (0) | 2018.03.30 |
---|---|
안드로이드 코틀린으로 데이터바인딩 하는 방법! Android DataBinding with Kotlin (0) | 2018.03.29 |
안드로이드: 파이어베이스 클라우드 스토리지 Firebase Cloud storage url로 이미지 불러오기! (13) | 2018.03.26 |
안드로이드 다이얼로그 라이브러리 소개! Android Dialog Library - afollestad/material-dialogs (0) | 2018.03.23 |
안드로이드 Volley http 라이브러리 사용 예제! (0) | 2018.01.05 |