본문 바로가기

안드로이드 자바463

[Java][Android] 리사이클러뷰 뷰형태 구분하기 이번 포스팅에서는 안드로이드 리사이클러뷰 뷰형태를 구분하는 것을 자바로 구현해보겠습니다. 보통의 리사이클러뷰는 하나의 뷰홀더를 지정해 놓고, 스크롤이 있는 리스트 형식의 뷰를 데이터만 갈아끼우면서 보여주는데요, 예를들면, 이런 식으로 데이터를 보여주는 뷰의 형식은 일정한데, 안에 들어가는 데이터만 다르게 표시가 되죠. 만약 어플에서 하나의 화면에서 하나의 정보만 보여주는 상황만 있다면, 하나의 뷰 형태만으로 충분할지 모릅니다. ​ 하지만, 우리가 겪는 상황은 더 복잡한 상황이 될 가능성이 높습니다. 예를들어, 채팅 화면을 보면 유저가 채팅방에 입장할 때, 내가 채팅을 입력했을 때, 상대가 채팅을 입력했을 때 보여지는 뷰 형태가 다 같다면, 유저가 채팅을 읽을 때 불편함을 느낄 수 있습니다. 또 다른 예시.. 2021. 7. 21.
[JAVA][Android] ViewModel, LiveData 활용하기 오늘은 모던 안드로이드인 Jetpack 의 구성요소인 ViewModel과 LiveData를 알아보겠습니다. 먼저 안드로이드 Jetpack이 무엇일까요? 안드로이드 Jetpack은 개발에 자주 쓰이는 여러 라이브러리들과 툴들을 묶어놓은 모음집입니다. ViewModel은 View로부터 독립적이며, View가 필요로 하는 데이터만을 소요합니다. 액티비티, 프래그먼트 생명주기에 종속되지 않게 하기 위한 특징이 있습니다. 액티비티 생명주기는 다들 아시죠? 그럼 LiveData는 또 뭘까요? 식별 가능한 데이터 홀더 클래스 입니다. 일반 식별 가능한 클래스와 달리 LiveData는 생명 주기를 인식합니다. 즉, 액티비티, 프래그먼트, 서비스 등 다른 앱 구성요소의 생명 주기를 고려합니다. 그럼 이 둘을 활용하여 간.. 2021. 7. 19.
[Java][Android] 원하는 시간에 알림 받기 안녕하세요~~!! 오늘은 원하는 시간에 알람을 받는 소스에 대해 공부해보겠습니다. 먼저 데이트 피커와 버튼 하나로 이루어진 쉬운 예제 입니다. 먼저 아래의 링크로 들어가서 즐겨찾기 해주세요 https://stickode.com/detail.html?no=2215 스틱코드 stickode.com 먼저 메니페스트 소스 부터 보겠습니다. 부분을 추가해주시면 됩니다. 다음은 스틱코드로 불러 올 수 있는 메인엑티비티 부분을 보겠습니다. alarm의 al만 쳐도 벌써 스틱코드가 자동완성 되려는 것이 보입니다. 자동완성 하게 되면 위와 같은 코드가 완성이 됩니다. 이부분은 알람을 매일 울리는 메소드입니다. 이제 메인엑티비티의 oncreate부분을 완성해 봅시다 필요한 변수 선언과 저장을 하는 알람시간을 저장하는 부분.. 2021. 7. 17.
[Java][Android] 안드로이드 - 프래그먼트에 카드뷰, 리사이클러뷰만들기 프래그먼트에 카드뷰(CardView)와 리사이클러뷰(RecyclerView)를 사용하여 리스트를 만들어 보겠습니다. - build.gradle(Module :app) 파일에 카드뷰와 리사이클러뷰를 추가해 줍니다. dependencies { //리사이클러뷰 implementation 'androidx.recyclerview:recyclerview:1.1.0' // 카드뷰 implementation "androidx.cardview:cardview:1.0.0" } - 프래그먼트 xml에 리사이클러뷰를 넣어줍니다. - 아이템으로 넣을 xml을 구성합니다. - 리사이클러뷰 어댑터를 만들어 줍니다. 스틱코드에 코드를 저장해 놓고 사용하면 편합니다. ada 까지만 입력해도 제 Post에 등록해 놓은 코드를 전체 불.. 2021. 7. 15.
[Java][Android] 카메라로 촬영해서 썸네일 띄우기 이번 시간에는 내가 만든 앱에서 camera 어플을 사용하여 사진을 찍고 image view 에 띄우는 것까지 진행해보겠습니다. 먼저 스틱코드에서 아래 링크된 코드를 즐겨찾기 해주세요 https://stickode.com/detail.html?no=2211 스틱코드에서 필요한 코드들을 즐겨찾기 해놓으면 태그만 입력해서 코든 전체를 한번에 불러올 수 있습니다. 아래 사진들을 보시면 태그만 입력해도 포스팅 제목이 보이죠? 클릭하면 코드 전체가 입력됩니다. 1. MainActivity.java package com.example.camera_ex; import android.Manifest; import android.content.Intent; import android.content.pm.PackageMa.. 2021. 7. 14.
[Java][Android] OpenCV 를 사용해서 이미지 외곽선을 따는 기능을 만들어 보자 안녕하세요 ^~^/ 오늘은 openCV를 사용해서 이미지의 외곽선을 따는 기능을 만들어 보겠습니다. 자 그럼 바로 시작해보겠습니다. 스틱코드? https://stickode.com/mainlogin.html STICKODE stickode.com 1. 환경 세팅 ▶ OpenCV 라이브러리 추가 - 아래 링크에서 자신이 사용할 버전을 다운로드하여줍니다. 이 프로젝트에서 사용할 버전은 opencv-4.5.2-android-sdk입니다. https://github.com/opencv/opencv/releases Releases · opencv/opencv Open Source Computer Vision Library. Contribute to opencv/opencv development by creatin.. 2021. 7. 9.
[Java][Android] MLKit를 이용한 텍스트 인식 이번예제에서는 구글에서 제공하는 MLKit를 이용해 이미지 속 텍스트를 인식하는 예제를 다뤄보겠습니다. MLKit는 Android 및 iOS 앱에서 머신러닝 관련 지식을 쉽게 이용할 수 있도록 하기위해 구글에서 제공하는 모바일 SDK입니다. 사용할 수 있는 분야는 Text Recognition, Face Detection, Barcode Scanning, Image Labeling 등 여러가지가 있으며 사용법도 크게 어렵지 않아 한 번 공부해두면 유용하게 쓰일 수 있습니다. 오늘은 이 중에서 Text Recognition을 위해 제공되는 머신러닝 모델을 이용해 텍스트 인식을 해보도록 하겠습니다. 1. 의존성 추가 앱내에서 Text Recognition 모델을 사용하기 위해 의존성을 추가해줍니다. depe.. 2021. 7. 7.
[JAVA][Android] 윈도우 오버레이 NETFLIX 나 YouTube를 이용하다 보면 다른앱을 이용하기 위해 나갈때 앱의 화면이 작아지며 바탕화면 위에서 작동되는 걸 보셨을 거예요 최상단 위치에 View를 띄우는 방법인 Window Overlay를 만들어보겠습니다. 그러기 위해서는 먼저 권한설정이 필요합니다. (Marshmallow(6.0(API 23))부터) 그리고 앱이 죽어도 작은 윈도우는 계속 실행이 되어 바탕화면 위에 띄어줘야 합니다. 뭐가 떠오르시지 않으신가요? 네 맞습니다. SERVICE !!! 먼저 메니페스트를 보겠습니다. Manifest.xml activity_main.xml 서비스를 사용하여 띄어줄 화면도 필요하겠죠? view_in_service.xml MainActivity 에서는 권한을 얻어오고 서비스를 실행하는 간단한 .. 2021. 7. 6.
[Java][Android] 동적 UI 생성 안녕하세요! 오늘은 스틱코드를 이용하여 동적 UI 생성을 해보도록 하겠습니다. 1. 동적 레이아웃과 클래스 생성 먼저 동적으로 생성될 레이아웃을 생성 합니다. sub.xml 위 레이아웃을 객체화 시킬 클래스를 생성합니다. Sub.java developer.android.com/reference/android/view/LayoutInflater LayoutInflater | Android 개발자 | Android Developers developer.android.com 2. 동적UI 적용 'activity_main.xml' 에 이벤트를 발생시킬 버튼과 동적으로 레이아웃이 생성될 구역을 만들어줍니다. activity_main.xml 다음으로 'MainActivity'에 버튼, 동적 레이아웃을 담을 컨테이너.. 2021. 7. 4.