전체 글
-
위젯에 그림자 효과 주기Android 2024. 4. 2. 23:13
그림자 만드는 방법 elevation shadow 리소스 직접 만들기 elevation 안드로이드에서는 elevation 속성을 이용해 그림자 효과를 낸다. 하지만, 모든 경우에 elevation 속성이 먹지 않는다. 그림자가 생길 여백이 존재하지 않는 경우 → elevation 속성을 설정할 위젯에 margin을 줘야한다. 위젯의 background 속성에 대해 색깔이 지정되지 않은 경우 → 색깔을 지정해줘야 그림자가 생긴다. 부모 컴포넌트가 padding을 가지고 있으며 이 외의 별도 공간을 확보하지 않았다면, clipToPadding을 false로 지정했는지 확인해야 한다. elevation 속성으로 넣어주는 dp 값은 뷰의 z축, 즉 '높이'를 의미한다. 그래서 dp 값이 높은 요소가 더 앞에 배..
-
첫번째 팀플 - 트러블 슈팅 모음집Android 2024. 4. 1. 23:23
트러블 슈팅01 오늘은 프로젝트 주차 첫번째 날이다! 팀원분이 올린 깃허브 레퍼지토리에 있는 코드를 git clone 을 통해서 가져오고 파일을 열었는데 밑에 빨간색 줄이 뜨면서 에러가 발생했다. The project is using an incompatible version (AGP 8.3.0) of the Android Gradle plugin. Latest supported version is AGP 8.2.2 Android Gradle plugin이 안맞는다. [Android] Gradle sync failed: The project is using an incompatible version (AGP 7.3.0) of the Android Gradle plugin. Latest supported ..
-
Activity LifeCycle, Activity StackAndroid 2024. 3. 29. 23:16
Activity LifeCycle 액티비티는 안드로이드 4대 컴포넌트 중 하나로, UI 구성을 위해 가장 기본이 되는 요소이다. 액티비티의 구성요소는 아래와 같다. MainActivity.kt activity_main.xml 우리는 이러한 특성을 지닌 액티비티의 생명주기를 알아볼 것이다. Activity Lifecycle Callback Method 이름 특징 예시 onCreate() - 시스템이 액티비티를 생성할 때 실행됨 - 해당 콜백 메소드는 오버라이딩을 해서 구현해야 함 - 액티비티 전체 수명 주기 동안 딱 한번만 동작됨 - 값 초기화나 시작 로직을 실행 onStart() - 액티비티가 onCreate() 를 호출한 뒤 'STARTED' 상태에 진입 시 호출 - 해당 메소드가 호출되면 액티비티가 ..
-
Activity, IntentAndroid 2024. 3. 28. 23:53
액티비티 액티비티의 기본 개념 액티비티 생명 주기 안드로이드 4대 컴포넌트 액티비티(Activity) : 사용자가 직접 상호작용하는 화면 서비스(Service) : 백그라운드(사용자가 직접적으로 인지하지 못하는 공간)에서 오랜 시간 동안 실행되어야 하는 작업을 수행(예. 음악 재생, 파일 다운로드) 브로드캐스트 리시버(Broadcast Receiver) : 안드로이드 시스템으로부터 발송되는 다양한 이벤트나 정보(예. 배터리 부족 경고, 화면 꺼짐)를 애플리케이션이 받을 수 있게 해주는 컴포넌트 콘텐트 프로바이더(Content Provider) : 애플리케이션 간의 데이터 공유를 가능하게 함. 데이터를 저장하고 관리하는 일종의 데이터베이스 역할을 함. 액티비티 정의: 사용자가 직접 상호 작용하는 창(win..
-
Layout, Margin, Padding, GravityAndroid 2024. 3. 27. 23:46
3-2(Android UI - Layout), 3-3(Android UI 실습) Margins/Padding/Gravity에 대한 이해 Linear Layout LayoutWeight : 자식들이 배치 될 때, 전체 영역 대비 비율의 개념으로 지정할 수 있는 Weight(가중치)를 설정 Relative Layout Table Layout 일단 넘김(아직 공부X) Frame Layout 정의: 컨테이너에 포함되 뷰들을 전부 좌상단에 배치하는 레이아웃 - 하나의 자식 View 위젯만 표시할 때 사용하는 Layout 클래스 - FrameLayout에 여러 View 위젯을 자식으로 추가하면 겹쳐진 형태로 표시되며, 가장 최근에 추가된 View 위젯이 가장 상위에 표시 - 모든 자식 View는 좌상단에 배치되며,..
-
액티비티 생명주기카테고리 없음 2024. 3. 25. 14:53
액티비티가 화면에 표시되고 종료될때까지 생명주기가 있다. MainActivity의 클래스를 보면 override fun onCreate 함수가 있는 것을 볼 수 있다. 하지만, 액티비티 생명주기에는 onCreate 말고도 더 많다. // FirstActivity.kt val TAG = "FirstActivity_Lifecycle" // LogCat에서 확인할 TAG 내용 설정(원하는대로) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) ... } override fun onStart() { super.onStart() Log.i(TAG, "onStart()") } override fun onRes..
-
2번째 키오스크 과제Android 2024. 3. 24. 23:56
1. 람다식에 대해서는 아직 딥다이브 할 필요는 없습니다! 굳이 람다식을 안써도 구현할 수 있는 방법이 거진 다 있으며, 그런 것들이 충족되면 추후 람다식을 더 활용해보면 좋지 않을까 생각듭니다. 그러니 좌절하지 마세요! 2. warning (노란 줄, 노란 음영) 뜨는 부분을 넘어가지 말기 → alt + enter 나 alt + shift + enter 로 해결하기 3. val option: Int = (readlnOrNull() ?: "0").toInt() 아니면 val option = readln().toInt() 4. Basket이 싱글턴이라면 basket이나 requireMoney와 같은 멤버필드를 외부에서 바꾸지 못하게 해주세요. setter을 만들어서 해주는 연습을 해주면 좋을 것 같습니다...
-
안드로이드 세번째 과제Android 2024. 3. 23. 22:15
EditText에 대한 정리 비밀번호는 입력내용이 가려져야 하는데.. 구글링이 잘 안나오네 구글 공식 문서도 참고하기가 조금 힘들다 // 첫번째 시도 EditText를 한번더 감싸서 password_toggle 을 사용하면 자동으로 password 를 숨기기가 가능하다는데.. 레이아웃 배치가 이상하게 돼서 실패 ㅠㅠ 안드로이드에서는 InputMethodManager를 제공하는데 해당 클래스의 메소드를 활용하여, SoftInput(입력화면)을 숨기거나 가져올 수 있다. public boolean hideSoftInputFromWindow(IBinder windowToken, int flags) // 입력창을 숨기는 메소드 public boolean showSoftInput(View view, int fla..