본문 바로가기

전체 글

(41)
[Android] 홍드로이드 기초 강의 - 리사이클러뷰(RecyclerView) 1. 안드로이드 리사이클러뷰(RecyclerView) "수많은 데이터의 집합을 지정된 영역 내에서 유연하게(flexible) 표시되도록 만들어주는 위젯"입니다. 안드로이드 개발자 문서에 작성된 리사이클러뷰(RecyclerView)의 설명입니다. 이해를 돋기 위해 설명을 덧붙이자면, "사용자가 관리하는 데이터의 집합을 서로 다른 아이템으로 생성하고 리스트업 해서 한눈에 보이도록 합니다. 뿐만 아니라 스크롤 기능이 구비되어 있어 한 화면에 표시되기 어려운 양의 아이템들도 볼 수 있습니다." 이전에는 ListView 위젯으로 여러 아이템들을 표현해주었습니다. RecyclerView가 ListView의 기능을 이어받아 그 기능을 담당하는 것인데, "Recycle"이라는 용어가 붙은 것이 특이합니다. 이는 두 위..
[백준 1018번] 체스판 다시 칠하기 - Java 1. 문제 해석 흰색, 검은색의 정사각형들로 구성된 MxN 크기의 보드를 8x8 크기로 잘라서 체스판으로 활용하려고 합니다. 색 구별은 임의로 되어 있어서 보드를 자르고 난 뒤에는 체스판에 맞게 색을 덧칠한다고 합니다. 이때 색을 덧칠하는 횟수가 최소가 되는 보드 위치를 찾는 것이 요구사항입니다. 해당 문제에서 중요한 부분은 설명란의 2번째 구문입니다. 체스판은 검은색과 흰색이 번갈아서 칠해져 있어야 한다. 구체적으로, (중략) 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져 있어야 한다. (중략) 하나는 맨 왼쪽 위 칸이 흰색인 경우, 하나는 검은색인 경우이다. 이는 맨 왼쪽 위칸이 흰색인 경우(이하 'case_white')와 검은색인 경우(이하 'case_black') 모두 고려해서 알고리즘을 작..
[Android] 홍드로이드 기초 강의 - Camera 촬영 및 Image 가져오기_MainActivity 이전 Android 포스팅인 "[Android] 홍드로이드 기초 강의 - Camera 촬영 및 Image 가져오기_환경설정"에 이어서 MainActivity에 대해 작성하겠습니다. 1. 애플리케이션 동작 기본적인 동작은 간단합니다. 1) 사용자로부터 권한을 요청한다. 2) 촬영 버튼을 눌러 카메라를 실행한다. 3) 사진을 촬영하고, 앱 메인화면으로 가져온다. 1) 애플리케이션의 첫 화면인 MainActivity가 나타나면 권한이 허용되었는지 확인해야 합니다. 권한이 거부 상태이면 사용자에게 권한 요청 메시지가 보입니다. 2) 권한을 허용하면 앱 하단의 '촬영' 버튼을 이용해서 카메라를 사용할 수 있습니다. 3) 촬영한 이미지는 메인화면에 표시됩니다. 이때 어떻게 스마트폰을 들고 있느냐에 따라서 이미지가 ..
[백준 7568번] 덩치 문제 -Java 사람의 덩치로 등수를 정하는 문제입니다. 덩치가 큰 사람이 순위가 높은 것인데 문제에서 정의하는 "덩치가 큰 사람"은 몸무게가 더 많고 키가 더 큰 사람을 말합니다. 즉, 몸무게나 키 중 1개라도 작은 수치를 가진다면 덩치가 크다고 할 수 없습니다. 덩치를 비교한 결과는 아래의 3개로 나타납니다. A) 몸무게와 키 모두 크다. B) 몸무게와 키 어느 하나가 크지 않다. C) 몸무게와 키 모두 작다. 순위가 높아지는 결과는 A)이고, 그렇지 않은 경우는 B)와 C)입니다. 따라서 모두의 순위가 1순위로 가정하고 A)의 경우가 아니면 순위를 하락시키는 방법을 생각했습니다. 1. 알고리즘 몸무게, 키 데이터 및 덩치를 비교하는 메소드를 관리하고자 'Pair'라는 class를 정의했습니다. // 몸무게 및 키를..
[Android] 홍드로이드 기초 강의 - Camera 촬영 및 Image 가져오기_환경설정 카카오톡에서 사진을 보낼 때 2가지 방법이 있습니다. 하나는 앨범에서 이미지를 가져오는 것이고, 다른 하나는 이미지를 촬영해서 보내는 방법입니다. 여기서 이미지를 촬영해서 보내는 방법을 선택하면 "카메라 - 사진 촬영 - 카메라 어플 실행"의 과정을 거칩니다. 이처럼 앱에서 기본 카메라를 실행 및 촬영하고, 이미지를 앱으로 가져오는 기능을 학습했습니다. 기초 강의라고 하기엔 코드가 길고 설명이 부족한 요소들이 다소 있어서 환경설정 파트와 Main 코드 파트로 나누어서 작성할 계획입니다. 1. 권한 허용 라이브러리 적용 및 Manifest 설정 이번에 학습한 예제가 카메라와 저장장치에 대한 접근 권한이 필요한 앱입니다. Android 6.0 마시멜로 버전부터는 권한 허용/거부 프로세스가 강화되어 사용하기 ..
[Android] startActivity()와 startActivityForResult()의 차이점 애플리케이션을 개발할 때는 다수의 Activity(화면)을 코딩하게 됩니다. 하나의 Activity로는 서비스를 제공하는 데에 있어서 많은 제한이 있기 때문입니다. 즉, 용도에 맞는 Activity들이 존재하고, 알맞는 시기에 화면 전환이 이루어져야 합니다. 단순히 새로운 Activity를 열어주는 경우도 있고, Sub Activity의 결과값을 Main Activity로 넘겨줘야 하는 경우도 있습니다. 이런 활동을 startActivity()와 startActivityForResult()가 지원합니다. 1. startActivity() startActivity()는 단순히 새로운 Activity를 시작할 때 사용합니다. 앞서 intent 화면 전환 포스팅에서도 사용한 것이 startActivity()입..
[Android] 홍드로이드 기초 강의 - SharedPreferences로 데이터 세이브/로드 1. SharedPreferences란? SharedPreferences는 애플리케이션 내부에 저장된 기본 설정 데이터를 액세스하고 수정하기 위한 인터페이스입니다. 애플리케이션을 동작함에 있어 많은 데이터들이 필요합니다. 예를 들어, 맞춤 서비스를 제공하기 위해서 데이터를 분석해야 하는 경우는 데이터를 DB에 저장해서 관리합니다. 반대로 사용자의 아이디 및 비밀번호, 환경설정 등과 같이 비교적 간단한 데이터들은 애플리케이션 내부에 저장하는 것이 수월합니다. 바꿔 말하면 자동 로그인, 광고 on/off를 SharedPrefernces로 서비스할 수 있습니다. 데이터를 저장하는 장소가 애플리케이션 내부라고 설명했습니다. 이는 애플리케이션이 삭제되면 데이터도 함께 삭제되므로 주의해야 합니다. 파일 경로 = d..
[Android] 홍드로이드 기초 강의 - TextView, EditText, Intent 화면 전환 1. TextView 안드로이드 화면에서 Text를 표기하기 위해 사용하는 뷰 위잿입니다. TextView를 사용하기 위해선 layout 파일에 를 추가해주어야 합니다. 위의 이미지를 보면 2개의 TextView가 작성된 모습을 볼 수 있습니다. TextView를 생성하면 기본적으로 layout_width, layout_height, text 속성이 표시됩니다. layout_width는 가로 길이, layout_height는 세로 길이입니다. 속성값으로 정수를 넣을 수 있지만, text가 잘릴 수 있습니다. 주로 사용하는 속성값은 wrap_content와 match_parent입니다. wrap_content는 TextView에 작성된 text의 사이즈에 맞춘다는 의미이고, match_parent는 상위 ..