전체 글194 [Android] viewpager 간단하게 indicator 만들기 JAVA viewpager를 만들어서 이미지나 어떠한 뷰를 보여줄 때 해당 뷰가 몇 번째인지 보여주는 indicator가 있다.주로 잘만들어져 있는 외부 라이브러리를 가져와서 사용할 수 있지만 아주 간단하게 구현할 수 있는 방법이 있다. 아래에서 설명할 이 방법은 처음 커스텀 뷰를 만들 때 접근해본 방식이다. 처음에 커스텀 뷰를 만들어야 할 때 어떤방식으로 코드를 짜야하는지 막막하기만 했는데, 온갖 방법들을 서치하고 알아보면서 여러 가지 코드를 작성해 보고 수정해 본 결과 간단하게 만들 수 있는 코드를 짤 수 있었다. 어떤 식으로 코드를 구성해야 할 지 초보자에게 조금은 도움이 될 수 있을 것이다. ( 이 글에서 뷰페이저는 만드는 방법은 스킵하겠다. )indicator를 만들 수 있는 간단한 방법을 글로 .. 안드로이드 앱 개발 공부/자꾸 까먹어서 적어두는 구현방법 2024. 10. 1. [java] 추상 클래스 와 추상 메서드 추상은 실체 간의 공통되는 특성을 추출한 것을 말한다. 예를 들어 새, 물고기 등의 공통적인 특성은 동물이라는 것이다. 동물이 어떤 실체가 있다기보다는 그 공통되는 특성을 묶은 것이다. 이러한 공통적인 특성을 필드와 메소드를 선언한 클래스를 추상클래스라고 한다. 추상 클래스의 용도는 공통된 필드와 메서드의 이름을 통일할 목적이나 실체 클래스를 작성할 때 시간 절약의 목적이 있다고 한다. 같은 기능을 하는 필드임에도 불구하고 다른 이름을 가지고 있으면 객체마다 사용 방법이 다르게 된다. 이를 방지하기 위한 목적이 있다. 그리고 추상클래스로 공통되는 부분을 작성해 두면 그렇지 않았을 때는 필요할 때마다 작성해야 하지만 추상클래스를 사용하면 한 번만 작성하면 되기 때문에 코드 작성에 있어서 시간이 절약이 된다.. 언어/Java 2023. 10. 17. [Android] 버튼+ 홈 키 사용해서 비디오 pip 구현 _ kotlin 코틀린 ott앱을 사용하다 보면 PIP기능으로 자주 사용한다. 그래서 항상 사용하면서 어떻게 구현하는 것인지 궁금했다. 그래서 한번 해봤다. 내가 구현해 보길 원하는 방법은 재생되는 영상을 보다가 PIP를 사용할 수 있는 것이다. 1. 영상이 재생 중이어야 한다. 2-1. 티빙 앱처럼 버튼을 눌러서 pip모드로 진입한다. 2-2. 넷플릭스나 웨이브 앱처럼 홈키를 눌러서 pip모드로 진입한다. 이 세가지를 만족할 수 있도록 만들고 싶었다. 1. 영상 재생 링크를 타고 영상을 가지고 올 수 있는 방법도 있지만 저장되어 있는 비디오를 가져오는 방법을 선택했다. 그러려면 처음으로는 영상을 가져와야 했다. 픽사베이에서 무료 영상을 다운을 받았다. 이 영상을 보여줄 수 있는 비디오뷰를 xml에 넣어주는 것이 가장 먼저 해.. 안드로이드 앱 개발 공부/자꾸 까먹어서 적어두는 구현방법 2023. 10. 16. [Android] 타이머 구현 _ NumberPicker + Timer Kotlin 코틀린 완성 화면 완성한 기능의 화면 일부이다. 기본 타이머를 사용을 하면서 한 번쯤 타이머를 만들어 보고 싶었다. 타이머 기능 외에도 부가적인 기능을 추가하느라 조금 시간이 걸렸지만 기본적인 기능은 완성이 된 상태이다. 타이머 자체를 구현하는 것은 간단한 일이었다. 타이머를 위한 시간을 설정하는 부분에서는 numberPicker를 사용하였고 start 버튼을 누르면 텍스트뷰를 1초마다 변경해 주도록 하면 된다. 그다음 시분초의 값 모두가 0이 되면 타이머가 종료되도록 하였다. 이 글에서는 타이머를 시작하고 종료하는 부분만 언급한다. 개인적으로 진행중이 타이머 앱의 일부 기능을 작성. 1. 타이머 시간 설정 화면(xml) xml에 numberPicker와 시작 버튼을 추가해 준다. 데이터바인딩을 사용해 주기 위.. 안드로이드 앱 개발 공부/자꾸 까먹어서 적어두는 구현방법 2023. 10. 14. [java] 백준 1027 : 고층 건물 https://www.acmicpc.net/problem/1027 1027번: 고층 건물 세준시에는 고층 빌딩이 많다. 세준시의 서민 김지민은 가장 많은 고층 빌딩이 보이는 고층 빌딩을 찾으려고 한다. 빌딩은 총 N개가 있는데, 빌딩은 선분으로 나타낸다. i번째 빌딩 (1부터 시작) www.acmicpc.net 빌딩 높이 배열을 입력받아 특정 빌딩에서 볼 수 있는 빌딩의 개수 중 최댓값을 출력하는 문제이다. for문으로 모든 빌딩을 탐색한다. 기준 빌딩의 좌우에 존재하는 빌딩들의 기울기를 비교하여 볼 수 있는 빌딩의 개수를 구한다. 기준 빌딩의 왼쪽에 존재하는 빌딩은 이전 기울기보다 무조건 작아야 볼 수있고 해당 빌딩의 오른쪽에 존재하는 빌딩은 이전 기울기보다 무조건 커야 볼 수 있다. 즉, 왼쪽이든 오.. 코딩테스트/백준 2023. 9. 7. [프로그래머스] 바탕화면 정리 자바 java https://school.programmers.co.kr/learn/courses/30/lessons/161990 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 바탕화면의 파일을 드래그할 때의 최소 범위를 반환하면 되는 문제. 최소 범위를 알기위한 방범은 파일들의 인덱스의 행의 최소최대, 열의 최소최대를 구하면 된다. 드래그 시작의 행은 가장 위에 있는 파일의 행, 가장 왼쪽에 있는 파일의 열이고, 드래그의 끝은 가장 밑에 있는 파일의 행+1, 가장 오른쪽에 있는 파일의 열+1이다. 주어진 string배열을 돌면서 파일이 존재하는 곳의 인덱스를 가지고 .. 코딩테스트/프로그래머스 2023. 8. 26. [프로그래머스] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 자바 java https://school.programmers.co.kr/learn/courses/30/lessons/181872# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 문자열 myString과 pat가 주어집니다. myString의 부분 문자열중 pat로 끝나는 가장 긴 부분 문자열을 찾아서 return 하는 solution 함수를 완성해 주세요. 제한사항 5 ≤ myString ≤ 20 1 ≤ pat ≤ 5 pat은 반드시 myString의 부분 문자열로 주어집니다. myString과 pat에 등장하는 알파벳은 대문자와 소문자를 구분합니다. 이 .. 코딩테스트/프로그래머스 2023. 8. 22. [프로그래머스] 공원 산책 자바 java https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 지나다니는 길을 'O', 장애물을 'X'로 나타낸 직사각형 격자 모양의 공원에서 로봇 강아지가 산책을 하려 합니다. 산책은 로봇 강아지에 미리 입력된 명령에 따라 진행하며, 명령은 다음과 같은 형식으로 주어집니다. ["방향 거리", "방향 거리" … ] 예를 들어 "E 5"는 로봇 강아지가 현재 위치에서 동쪽으로 5칸 이동했다는 의미입니다. 로봇 강아지는 명령을 수행하기 전에 다음 두.. 코딩테스트/프로그래머스 2023. 8. 21. [프로그래머스] 조건에 맞게 수열 변환하기2 자바 java https://school.programmers.co.kr/learn/courses/30/lessons/181881 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 정수 배열 arr가 주어집니다. arr의 각 원소에 대해 값이 50보다 크거나 같은 짝수라면 2로 나누고, 50보다 작은 홀수라면 2를 곱하고 다시 1을 더합니다. 이러한 작업을 x번 반복한 결과인 배열을 arr(x)라고 표현했을 때, arr(x) = arr(x + 1)인 x가 항상 존재합니다. 이러한 x 중 가장 작은 값을 return 하는 solution 함수를 완성해 주세요. 단.. 코딩테스트/프로그래머스 2023. 8. 20. [프로그래머스] 추억 점수 자바 java https://school.programmers.co.kr/learn/courses/30/lessons/176963 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 사진들을 보며 추억에 젖어 있던 루는 사진별로 추억 점수를 매기려고 합니다. 사진 속에 나오는 인물의 그리움 점수를 모두 합산한 값이 해당 사진의 추억 점수가 됩니다. 예를 들어 사진 속 인물의 이름이 ["may", "kein", "kain"]이고 각 인물의 그리움 점수가 [5점, 10점, 1점] 일 때 해당 사진의 추억 점수는 16(5 + 10 + 1)점이 됩니다. 다른 사진 속 인.. 코딩테스트/프로그래머스 2023. 8. 19. [안드로이드] 데이터바인딩 databinding 기본 코틀린 데이터바인딩을 사용하는 아주 기본적인 방법을 작성해보려고 한다. 버튼을 누르면 textView의 숫자가 증가하는 아주 간단한 작동을 데이터바인딩을 사용해서 구현할 것이다. 데이터바인딩을 사용하기 위해서는 첫 번째로 build.gradle(:app)에 데이터 바인딩을 사용하기 위한 설정을 해주어야 한다. 1. build.gradle(:app) android { ... buildFeatures { dataBinding true } } 위 코드를 추가해 주는 것이 가장 먼저 해야 할 일이다. 두 번째로는 데이터바인딩에 필요한 data class를 작성해 주는 일이다. 2. Data class data class Profile( var age : Int ) 원하는 이름의 데이터 클래스를 원하는 변수를 포함하여 .. 안드로이드 앱 개발 공부/자꾸 까먹어서 적어두는 구현방법 2023. 8. 17. [프로그래머스] 배열 조각하기 자바 java https://school.programmers.co.kr/learn/courses/30/lessons/181893 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 정수 배열 arr와 query가 주어집니다. query를 순회하면서 다음 작업을 반복합니다. 짝수 인덱스에서는 arr에서 query [i] 번 인덱스를 제외하고 배열의 query [i] 번 인덱스 뒷부분을 잘라서 버립니다. 홀수 인덱스에서는 arr에서 query[i]번 인덱스는 제외하고 배열의 query [i] 번 인덱스 앞부분을 잘라서 버립니다. 위 작업을 마친 후 남은 arr의 부.. 코딩테스트/프로그래머스 2023. 8. 17. 이전 1 2 3 4 ··· 17 다음