Android
-
[ Android ] 임시 파일 생성해서 외부 앱으로 찍은 사진 받기Android/멀티미디어 2020. 9. 16. 20:21
resolveActivity() takePictureIntent.resolveActivity(getPackageManager()) 결과가 null이 아닌 경우, 인텐트를 처리할 수 있는 앱이 최소한 하나는 있다는 뜻이며 startActivity()를 호출해도 안전합니다. 결과가 null이면 해당 인텐트를 사용해서는 안 되고, 가능하면 해당 인텐트를 호출하는 기능을 비활성화해야 합니다. Code public class ReportCameraActivity extends AppCompatActivity { private File filePath; private ImageView resultView; private String currentPhotoPath; @Override protected void onC..
-
[ Android ] Application ClassAndroid/Java 2020. 7. 12. 15:36
책에 있는 코드를 공부하던 중 Application class를 상속받은 class를 작성한 것을 보아서 Application class에 대해 공부해보았다. 틀린 내용이 있으면 댓글로 알려주시면 감사하겠습니다! Application Class란? Application의 상태를 유지하기 위한 기본 클래스입니다. 즉, Application class는 어느 컴포넌트(Activity, Service, intent 등)에서나 공유할 수 있는 전역 class를 의미합니다. Application을 상속받은 class는 공동으로 관리해야 하는 데이터를 작성하기에 적합합니다. Application class는 다른 subclass보다 먼저 인스턴스화 됩니다. 일반적으로 subclass Application을 필요로 ..
-
[ Android ] EventBusAndroid 2020. 6. 22. 14:18
프로젝트를 진행할 때 컴포넌트 간 통신을 구현하고 있는데 멘토분이 Event Bus라는 것을 알려주었습니다. 당시 Android 컴포넌트 간에 데이터를 전달하는 경우 Intent를 사용하였고 Fragment와 통신을 하는 경우 context를 공유하거나 자기자신을 static으로 선언하여 다른 컴포넌트에서 사용할 수 있게 하는 방식으로 코드를 작성하고 있었습니다. EventBus EventBus는 컴포넌트 간에 비동기적 통신을 가능하게 하는 라이브러리 입니다. Greenbot Github에서는 EventBus를 사용하면 좋은 점으로 아래와 같이 제시하고 있습니다. 컴포넌트 간에 통신을 간편하게 할 수 있다. 어노테이션 기반으로 이벤트 발신자와 수신자를 분리합니다. Activity, Fragment, UI..
-
[ Android ] D-Day 계산 오류Android 2020. 5. 22. 21:15
CatServant D-day를 계산하면서 날짜 오류가 발생하였다. 첫 번째 만난 오류는 현재 날짜가 한달 전으로 나오는 오류였다. 알고보니 java 에서는 Calendar.get(Calendar.MONTH) 를 했을 때, 현재 달에서 1달 전으로 나오는 문제가 있어서 이를 고쳐주기 위해서 +1을 해주고 다시 set해서 고쳐주었다. 두 번째 만난 오류는 시간때문에 D-day가 하루씩 차이나는 오류였다. 이를 해결해 주기 위해서는 Calendar의 시간을 모두 clear 해주고 계산하면 시간 때문에 날짜가 차이나는 오류는 해결할 수 있었다. Code private String getDday(String targetDay) { int tYear, tMonth, tDay; int dYear, dMonth, d..
-
[ Android ] Toast / Snackbar 보여주기Android/Java 2020. 5. 19. 23:22
CatServant Toast ( 토스트 ) Toast는 간단한 메시지를 잠깐 보여주었다가 없어지는 뷰로 앱화면에 종속되지 않습니다. 이는 실행영역보다 앞쪽에 보이는 뷰이기 때문에 앱이 화면에 보이지 않는 상태에서도 Toast가 보일 수 있다는 의미입니다. Code Context context = getApplicationContext(); CharSequence text = "Hello toast!"; int duration = Toast.LENGTH_SHORT; Toast toast = Toast.makeText(context, text, duration); toast.show(); Toast.makeText(getApplicationContext(), "Hello toast!", Toast.LENG..
-
[ Android ] 브로드캐스트 수신자Android 2020. 5. 18. 18:57
이 글은 부스트코스 강의를 공부하며 요약한 글입니다. CatServant Broadcast Receiver ( 브로드캐스트 수신자 ) 애플리케이션이 글로벌 이벤트(Global event)를 받아서 처리하려면 Broadcast Receiver로 등록 Global event : [ "전화가 왔습니다.", "문자 메세지가 도착했습니다" ] 와 같이 Android system 전체에 보내지는 이벤트 Broadcast Reciever는 Intent filter를 포함하며, Manifest file에 등록함으로써 Intent를 받을 준비를 한다. Reciever가 Manifest file에 등록되었다면 따로 시작시키지 않아도 된다. Application은 Context class의 registerReceiver 메..
-
[ Android ] 페이지 슬라이딩Android 2020. 3. 31. 16:18
이 글은 부스트코스 강의를 공부하며 요약한 글입니다. CatServant Page Sliding 페이지 슬라이딩은 버튼 등을 눌렀을 때 보이지 않던 뷰가 슬라이딩 방식으로 보이는 것으로 여러 뷰를 하나씩 전환하면서 보여주는 방식에 애니메이션을 결합한 것입니다. 겹쳐져 있는 여러 뷰를 하나씩 전환하면서 보여주기 위한 방법으로는 Frame Layout을 사용합니다. 참고 : ViewPager로 프래그먼트 간 슬라이드 Code res / anim / translate_left.xml tag는 View가 위, 아래 또는 좌, 우로 이동하도록 만듭니다. 여기서는 fromXDelta 속성과 toXDelta 속성이 사용되었으므로 X 방향 ( = 좌/우 ) 로 이동하게 됩니다. 만약 Y 방향 ( = 위 / 아래 )로 ..
-
[ Android ] 스레드 애니메이션Android 2020. 3. 27. 14:55
이 글은 부스트코스 강의를 공부하며 요약한 글입니다. CatServant Animation Android에는 두 뷰 계층 간의 변경사항을 쉽게 애니메이션할 수 있는 전환 프레임워크가 있습니다. 이 프레임워크는 시간이 흐름에 따라 일부 속성 값을 변경하여 런타임 시 뷰를 애니메이션합니다. 프레임워크에는 흔히 사용되는 효과를 위한 애니메이션이 내장되어 있으며, 맞춤 애니메이션 및 전환 수명 주기 콜백을 만들 수 있습니다. 비트맵 애니메이션 UI 가시성 및 모션 애니메이션 레이아웃 변경 애니메이션 활동 간 애니메이션 애니메이션을 언제 사용해야 하는지 더 잘 이해하려면 모션에 대한 머티리얼 디자인 가이드도 참조하세요. Code MainActivity.java public class MainActivity ext..