티스토리 뷰
토스트와 대화상자
1 2 3 4 5 | 1. 다양한 위젯 확인하기 2. 토스트 메시지에 알아보기 3. alert 알림대화상자는 어떻게 보여줄까 | cs |
토스트란?
1 | 간단한 메시지를 잠깐 보여주었다가 없어지는 뷰로 애플리케이션 위로 떠있는 뷰라 할 수 있음. | cs |
토스트 변경 예제
1. 프로젝트 생성Example_MyToast
2. 입력상자 2개(좌표값 입력시 그위치에 뜨게 한다거나 이런 예제) , 버튼 하나 생성
3. 버튼 클릭했을때 다른 좌표 보이게 하도록 하겠음.
4. 버튼(토스트 띄우기 버튼 생성)
5. Main.Java 파일
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 package com.example.example_toast;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;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 {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button = (Button) findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {// this를 참조 할 수 없을 때getApplicationContext()// show를 하지는 않는다.Toast toast = Toast.makeText(getApplicationContext(),"위치가 바뀐 토스트 메시지",Toast.LENGTH_LONG);// toast객체로 리턴 받기 위함toast.setGravity(Gravity.TOP | Gravity.LEFT,200,200); //Gravity의 특징은 알고있는 특징과 유사하다toast.show(); // show()의 위치를 지금찍는것을 차이점 확인}});Button button2 = (Button) findViewById(R.id.button2);button2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {// 인플레이터 메모리객체화로 해서 참조하기LayoutInflater inflater = getLayoutInflater();// toastborder 파일 만들기View layout = inflater.inflate(R.layout.toastborder, (ViewGroup) findViewById(R.id.toast_layout_root));// 변수를 만들고 할당하면 이제 찾아 줄 수 있다. 텍스트뷰를 찾아서 캐스팅한다.TextView text = (TextView) layout.findViewById(R.id.text);//텍스트 뷰라고 하는것을 토스트 메시지로 사용하게 될것이다.}});}}cs
6. Toast메시지 위치를 바꿀수 있다는것 확인<결과>,Toast 메시지 모양또 바꿀 수 있음.(Button 추가)
123456789101112131415161718192021222324252627 <?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout 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"tools:context="com.example.example_toast.MainActivity"><Buttonandroid:id="@+id/button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Toast 띄우기"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"tools:layout_editor_absoluteY="203dp" /><Buttonandroid:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="8dp"android:text="Toast 모양바꾸기"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toBottomOf="@+id/button" /></android.support.constraint.ConstraintLayout>cs
8.app->layout->new ->layoutresourcefile -> Toastborder.xml 파일 만들기
id="@+id/toast_layout_root" 로 설정,TextView 생성 id = "@+id/text"
1234567891011121314 <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal"android:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/toast_layout_root"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/text"android:padding="20dp"android:textSize="40dp"/></LinearLayout>cs
9. 이제 아까 layout만든것을 가져와서 설정 한다.
1234567891011 TextView text = (TextView) layout.findViewById(R.id.text);//텍스트 뷰라고 하는것을 토스트 메시지로 사용하게 될것이다.text.setText("모양을 바꾼텍스트");Toast toast = new Toast(getApplicationContext());toast.setGravity(Gravity.CENTER,0,-100); // gravity 설정,offsettoast.setDuration(toast.LENGTH_LONG); //toast.setView(layout); // layout 을 가져와서 세팅하겠다.toast.show();cs
10. app -> res -> drawble -> toast.xml 파일 생성
<shape 속성> 이미지가 아니라 이미지나 색상 모양을 그대로 보여줄 수 있음.
toast.xml파일은 배경을 직접 자기가 만들어서 지정 할 수 있다.
1234567891011121314151617 <?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><strokeandroid:width="4dp"android:color="#ffffff00" /><solidandroid:color="#ff883300"/><paddingandroid:bottom="20dp"android:left="20dp"android:right="20dp"android:top="20dp"/><cornersandroid:radius="15dp"/></shape>cs
11. toast.xml파일을 배경이라고 생각하고 toastborder.xml에서 이것을 참조해서 직접 사용 할 수 있다.
12345678910111213141516 <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal"android:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/toast_layout_root"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/text"android:padding="20dp"android:textSize="40dp"android:background="@drawable/toast"/></LinearLayout>cs
12. SnackBar 사용해보기
- toast와 별반차이가 없지만 외부라이브러리에 있다.
- File -> Project Structure -> app -> Dependencies 탭 -> +누르고 -> library Dependency (com.android.support.disign:26.00-alpha1) 추가
- 이것은 build.gradle 파일에 자동으로 들어간다.
12345678910 dependencies {compile fileTree(include: ['*.jar'], dir: 'libs')androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {exclude group: 'com.android.support', module: 'support-annotations'})compile 'com.android.support:appcompat-v7:26.+'compile 'com.android.support.constraint:constraint-layout:1.0.2'testCompile 'junit:junit:4.12'compile 'com.android.support:design:26.0.0-alpha1' // 25.+}cs
13. 메인 엑티비티에 버튼 하나더 추가시키기
123456789101112 Button button3 = (Button) findViewById(R.id.button3);button3.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Snackbar.make(v,"스낵바 입니다",Snackbar.LENGTH_LONG).show();// 디자인이라는 외부라이브러리 사용하면 밑에서부터 스낵바가 올라오게 된다.}});cs
- <결과>
'Android' 카테고리의 다른 글
[Android] 프로그레스바와 원형바 / 시크바 사용하기 (0) | 2017.09.24 |
---|---|
[Android] 알림 대화 상자 만들기 (0) | 2017.09.24 |
[Android] 단말 방향 전환 이벤트 (0) | 2017.09.24 |
[Android] 키 입력 이벤트 처리하기 (0) | 2017.09.24 |
[Android] 다양한 위젯과 이벤트 활용하기(터치이벤트) (0) | 2017.09.24 |
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 머신러닝
- 프로그래밍
- 감자개발자
- 알고리즘
- programming
- 코드엔진
- Controller
- 백준
- 감자코딩
- Spring
- 스프링
- TensorFlow
- 개발하는 관광이
- 학교
- 복습
- node
- 리버싱
- node.js
- 텐서플로우
- Android
- Algorigm
- 백준알고리즘
- 노드
- MVC
- db
- 안드로이드
- C langauge
- C언어
- BFS
- 초보자를 위한 C언어 300제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함