Linear / Relative / Frame / Table / Grid / Constraint 뷰를 가로나 세로 방향으로 나열하는 레이아웃 클래스 orientation 속성으로 horizontal 또는 vertical값으로 방향을 지정 가능 weight 값을 지정하여 비율을 설정 할 수 있음 상대 뷰의 위치를 기준으로 정렬하는 레이아웃 클래스 화면에 이미 출력된 특정 뷰를 기준으로 방향을 지정하여 배치 위치를 지정하지 않는다면 겹쳐지는 것을 볼 수 있음 이미지에 id를 지정하고 버튼 옆에 toRightof를 넣는다면 🍀맞춤 정렬하는 align 속성이 있음 android:layout_alignTop : 기존 뷰와 위쪽을 맞춤 android:layout_alignBottom : 기존 뷰와 아래쪽을 맞춤 a..
- Text - 화면에 text를 표시하는 기능 사용자의 입력을 받는 TextView (EditText라 불린다) EditText - 입력 받는 타입만 text password 형태 EditText - 입력 받는 타입만 number password 형태 EditText - 입력 받는 타입만 Email 형태(스페이스바 왼쪽에 @문자 추가 되어있음) EditText - 전화번호 형식의 숫자 패드 키보드가 생성됨 EditText - 우편번호 형식의 키보드가 생성됨(맨 윗줄를 꾹 누루면 숫자 생성) EditText - Enter가 추가되어 다음 줄로 넘어갈 수 있음 EditText - 시간을 입력 할 수 있게 “:” 문자가 키보드에 추가됨 EditText - 날짜를 입력 할 수 있는 (예시: 2022/07/11..
Android Manifest는 앱의 고유한 식별자인 패키지 명, 안드로이드 앱에서 필요한 권한, 안드로이드 구성 요소로 정의 할 수 있습니다. 패키지명 선언 Android 빌드 도구가 package특성을 사용하는 목적은 두 가지입니다. 빌드 도구는 앱에서 생성된 R.java 클래스의 네임스페이스로 package의 경로를 적용합니다. 빌드 도구는 이 이름을 사용하여 manifest 파일에 선언되어 있는 상대 클래스 이름을 확인합니다. 권한 Android 앱은 민감한 사용자 데이터(예: 연락처, SMS) 또는 특정 시스템 기능(예: 카메라, 인터넷 액세스)에 액세스하기 위한 권한을 요청해야 합니다. ... 이런 식으로 다양하게 권한을 요청 할 수 있습니다. 안드로이드 앱은 4개의 컴포넌트로 개발을 합니다...
N개의 정수를 입력받아, 자신의 바로 앞 수보다 큰 수만 출력하는 알고리즘 문제 import java.util.ArrayList; import java.util.Scanner; public class Main { public ArrayList solution(int n, int[] arr) { ArrayList answer = new ArrayList(); // 0번째는 무조건 출력 answer.add(arr[0]); // 배열 비교하고 대입하기 for (int i = 1; i arr[i-1]) answer.add(arr[i]); } return answer; } public static void main(String[] args) { Main T = new Ma..
build.gradle에 firebase buildscript { repositories { google() // Google's Maven repository mavenCentral() // Maven Central repository } dependencies { classpath 'com.google.gms:google-services:4.3.13' } } 를 추가하는 도중에 all buildscript {} blocks must appear before any plugins {} blocks in the script 라는 오류가 발생 buildscript{}를 plugins{}보다 앞에 적어주면 간단하게 해결가능!!
간단한 프로젝트를 진행하면서 처음 activity에 tablayout과 Viewpager2를 같이 사용했다. 그리고 fragment에 광고를 넣기 위해 Viewpager2를 사용했다. 그러자 activity의 viewpager는 움직이지만 fragment의 viewpager는 움직이지 않는 문제가 발생했다. https://developer.android.com/training/animation/vp2-migration#nested-scrollables ViewPager에서 ViewPager2로 이전 | Android 개발자 | Android Developers ViewPager에서 ViewPager2로 이전 ViewPager2는 ViewPager 라이브러리의 개선된 버전으로, 향상된 기능을 제공하며 Vi..
1. res 폴더에 raw 폴더 추가하기 그 안에 gif 넣고싶은 이미지 넣기 2. build.gradle에 라이브러리 추가 https://github.com/bumptech/glide GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrolling An image loading and caching library for Android focused on smooth scrolling - GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrolling github.com ..
https://developer.android.com/guide/components/fragments?hl=ko 프래그먼트 | Android 개발자 | Android Developers A Fragment represents a behavior or a portion of user interface in an Activity. You can combine multiple fragments in a single activity to build a multi-pane UI and reuse a fragment in multiple activities. You can think of a fragment as a modular section developer.android.com 프래그먼트는 액티비티처럼 동작하..
암호는 알파벳 한 문자마다 # 또는 *이 일곱 개로 구성되어 있습니다. #은 이진수의 1로, *이진수의 0으로 변환합니다 그리고 바뀐 2진수를 10진수화 합니다. 그 다음 10진수화 한것을 아스키 번호로 변환하는 알고리즘 문제입니다. import java.util.Scanner; public class Main { public String solution(int n, String s) { String answer = ""; for (int i = 0; i < n; i++) { // 0번째부터 6번째까지 자르고 변환합니다. String tmp = s.substring(0,7).replace('#','1').replace('*','0'); // 2진수를 10진수로 변환합니다. int num = Integer..
알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는 문자 바로 오른쪽에 반복 횟수를 표기하는 방법으로 문자열을 압축하는 알고리즘 문제 (반복횟수가 1인 경우 생략) import java.util.Scanner; public class Main { public String solution(String s) { String answer = ""; int cnt = 1; // 맨뒤에 빈문자를 넣어야 마지막 문자가 대입가능 s = s + " "; // 빈문자를 대입하였기 때문에 빈문자 전까지 for문이 돌게 해야함 for (int i = 0; i < s.length() - 1; i++) { if (s.charAt(i) == s.charAt(i + 1)) cnt++; else ..