목록안드로이드 (31)
막무가내 삽질 블로그
안드로이드 개발자 문서, 코드랩, Developing을 참고했다. AndroidX의 Navigation은 UI 전환을 쉽게 구현하는데 도움을 주는 라이브러리이다. Navigation 에서는 이전 Destination(Fragment) 이 포함된 백스택을 자동으로 관리한다. 앱을 열때 첫 화면이 백스택에 배치되고 그 후 Navigate()를 실행 시켜 화면을 이동할 때 마다 백스택 맨위에 해당 Fragment가 놓여진다. (LIFO구조) 이전(뒤로가기) 기능 시, 스택의 맨위의 Fragment를 제거함으로 바로 이전의 Fragment가 호출된다. res-navigation-navigation.xml MainActivity (NavHost) class MainActivity : AppCompatActivit..
이 글을 통해 참고 하실려는 분들은 다른 블로그를 참고하세요..... 아직 공부중입니다 안드로이드 룸에 대해 정리 한다. 룸은 SQLite의 기능을 모두 사용할 수 있고, DB로의 접근을 쉽게 도와주는 라이브러리! 자세한 내용은 https://developer.android.com/training/data-storage/room?hl=ko 룸의 구성 요소 Entity : 데이터베이스 안에 있는 테이블을 자바나 코틀린 클래스로 나타냄. 데이터 모델 클래스이다. DAO : Database Access Object, 디비에 접근해 insert,delete 등을 수행하는 메소드를 가지고 있다. Database : 앱에 영구 저장되는 데이터와 연결을 위한 액세스 지점, 테이블과 버전을 정의하는 곳 Entity @..
애니메이션 효과를 정리해 보았습니다. what is the animation? 동작이나 모양이 조금씩 다른 많은 그림이나 인형을 한 장면씩 촬영하여 영사하였을 때에 화상이 연속하여 움직이는 것처럼 보이게 하는 것 안드로이드에서 새로운 뷰가 나타나고 현재뷰가 사라질때 애니메이션 효과를 주어서 움직이는 것처럼(슬라이드) 보여지는 것을 말합니다. 제가 구현해 볼 예제는 1번 새로운 뷰가 나타날때는 우측에서 들어오고, 현재뷰가 사라질때는 왼쪽으로 나가고 이전화면으로 돌아갈때는 현재뷰가 오른쪽으로 나가고, 들어오는 뷰는 왼쪽에서 들어오도록 설정 2번 새로운 뷰가 나타날때는 아래에서 들어오고, 현재뷰가 사라질때는 위쪽으로 나가고 이전화면으로 돌아갈때는 현재뷰가 아래쪽으로 나가고, 들어오는 뷰는 위쪽에서 들어오도록 ..
약 1년전 쯤 opencv를 활용하여 얼굴인식 및 이미지 필터를 적용하였다. 이번 프로젝트는 이미지를 활용하여 사람인지 아닌지를 판별하는 기능이 있다. (위랑 거의비슷) 차이 = 영상기반, 이미지기반 순서 1. 이미지를 선택 2. 이미지를 얼굴,눈을 읽을 수 있게 셋팅 후 네이티브로 넘김 3. 네이티브에서 받아온 jlong 타입 input의 이미지를 위치를 확인 하고 얼굴형태,눈을 확인 후 사람이면 1 아니면 0을 넘겨줌 4. 확인 테스트 프로젝트를 만들어서 정리해 본다. private static final String TAG = "ImTest"; public static final int GALLERY = 1; private Button gallery, success; private ImageView..
A유저가 B유저의 프로필에서 친구추가를 누르면 B유저의 핸드폰에 알림이 울려야 한다. FCM 을 활용하여 테스트 해보았다. https://firebase.google.com/docs/android/setup?hl=ko 안드로이드 프로젝트에 파이어베이스를 추가 시킨다 마지막 단계 sync now를 누른 후 이 화면이 계속 되는 사람들은 에뮬레이터를 한번 실행시키면 넘어 갈 수 있다. 토큰은 사람으로 치면 주민등록번호라고 생각한다. 사람이 태어나면 주민번호를 등록하고 사망하면 주민번호가 삭제되는 것 처럼 앱이 실행되면 토큰이 발급되면서 해당 토큰으로 알림을 받을 수 있다. 테스트 파일의 흐름은 A핸드폰의 토큰을 발급받고 보관해 두었다가 B핸드폰을 실행하여 A핸드폰의 토큰으로 알림을 보낸다. MainActiv..
infinite/endless scroll 이란? 페이지 이동없이 스크롤을 내리면 다음 페이지의 내용을 불러오는 것을 의미한다. 즉, 무한스크롤이다. 예제를 통해 실습해본 후 내 프로젝트에 맞게 변경했다. 서버에서 받아온 데이터가 100개라고 가정했을 때 100개를 담는 리스트를 하나를 할당한 후 스크롤 이벤트가 발생할때 10개의 데이터를 불러온다. 테스트 예제 activity_main.xml item_recycler.xml item_loading.xml RecyclerViewAdapter public class RecyclerViewAdapter extends RecyclerView.Adapter { private final int VIEW_TYPE_ITEM = 0; private final int V..
'void android.app.ProgressDialog.show()' on a null object reference 작동 구조 앨범에서 사진을 고른 후 닉네임 중복체크를 하면 튕기는 에러 발생 사진을 고르지 않은 상태에서 닉네임 중복체크를 하면 잘된다. 사진선택후 > 액티비티 돌아와서 초기화 셋팅 후 > 닉네임 버튼 누르고 > 서버와 통신 후 결과값 받음 해결 방법 null object reference 무슨 객체가 참조를 못한다는건데....ProgressDialog를 못찾는다는건데... 난 분명 해줬는데 왜 그럴까 생각 후 검색을 통해 원인을 찾았다. onStop 일때 다이얼로그를 dismiss 시켜주고 null로 할당했다. 그러니 재시작할때 ProgressDialog 객체를 참조 못한 것 이였다..
이곳저곳에서 보다 이제 어느정도는 정리가 끝났다. 많은 예제들을 짬뽕시키고 내게 필요한 쪽으로 계속 변경중에 있다. 기존에 방식은 view에서 adapter로 다시 넘겨 줬지만 변경된 것은 모든걸 presenter에서 처리를 하였다. MainContract public interface MainContract { // presenter 에서 view를 업데이트 하기 위한 이벤트 interface View { void showLoading(); void hideLoading(); void onErrorMessage(String message); void showToast(String name); } // view에서 호출할때 이벤트 interface Presenter { void attachView(Vie..