본문 바로가기
반응형

Android37

[Android] Camera2 배우기 https://developer.android.com/training/camera2 Camera2 | Android Developers Camera2 Camera2 is the latest low-level Android camera package and replaces the deprecated Camera class. Camera2 provides in-depth controls for complex use cases, but requires you to manage device-specific configurations. You can read about specific Camera developer.android.com 1. Camera2란? Camera2란 안드로이드 기기에서 카메라 제어를 하는.. 2022. 5. 13.
[Android] Canvas를 이용하여 UI 그리기 https://developer.android.com/training/custom-views/custom-drawing 맞춤 그리기 | Android 개발자 | Android Developers 맞춤 뷰에서 가장 중요한 부분은 디자인입니다. 맞춤 그리기는 애플리케이션의 필요에 따라 쉽거나 복잡할 수 있습니다. 이 과정에서는 가장 일반적인 작업 몇 가지에 관해 설명합니다. 맞춤 뷰 developer.android.com 먼저 이를 배우기 전에 Custom View에 대한 대략적인 개념을 학습하고 오자 https://lucky516.tistory.com/173 [Android] Custom View 만들기 https://developer.android.com/training/custom-views/creat.. 2022. 4. 14.
[Android] Custom View 만들기 https://developer.android.com/training/custom-views/create-view 뷰 클래스 만들기 | Android 개발자 | Android Developers 잘 설계된 맞춤 뷰는 잘 설계된 다른 클래스와 매우 유사합니다. 즉, 사용하기 쉬운 인터페이스로 일련의 특정 기능을 캡슐화하고 CPU 및 메모리를 효율적으로 사용하는 등의 역할을 합니다. 그 developer.android.com 0. 개요 먼저 안드로이드의 기본개념을 학습하자. 안드로이드의 UI는 기본적으로 두개의 구성요소로 구성되어 있다 View 그리고 ViewGroup 이 둘의 상속받는 subclass들을 각각 Widget 그리고 Layout 이라고 한다 즉 View -> 위젯 ViewGroup -> 레이아.. 2022. 4. 13.
Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager 오늘 갑자기 저 에러가 자꾸 뜨면서 앱이 빌드가 안됨.. 원인을 찾아보니 gradle sync 할 때 dx 파일이 없다고 자꾸 나옴 방법을 찾아보니 다른사람들은 다 컴파일러를 다운그레이드 하는 방법만나옴 좀더 찾아보니 dx라는게 31버전부터 d8로 바뀌었다고 함. 도로 dx로 바꾸어주면 해결 C:\Users\User\AppData\Local\Android\Sdk\build-tools\31.0.0 d8.bat 을 dx.bat으로 바꾸어준다 C:\Users\User\AppData\Local\Android\Sdk\build-tools\31.0.0/lib d8.jar를 dx.jar로 바꾸어준다 2022. 4. 13.
[Android] Content Provider 컨텐트 프로바이더 https://developer.android.com/guide/topics/providers/content-providers 콘텐츠 제공자 | Android 개발자 | Android Developers Content providers manage access to a structured set of data. They encapsulate the data, and provide mechanisms for defining data security. Content providers are the standard interface that connects data in one process with code running in another process developer.android.com 1. Cont.. 2022. 4. 5.
Incorrectly nested parentheses in regexp pattern near index 자바 String의 split 함수를 쓰다가 위와같은 exception이 발생핳였다 split함수에 괄호 ")" 나 "("를 넣어줄 때 발생한다. 해결방법은 괄호 앞에 백스페이스 두개를 넣어주면 된다. 즉 "\\)" 아래처럼 사용 "문자열1 ) 문자열2".split("\\)"); 2022. 4. 5.
You cannot keep your settings in the secure settings 안드로이드 Room Database에 ContentProvider를 통하여 데이터를 write 하던중 저런 exception이 낫다 원인을 분석해보니 데이터베이스에 써줘야 할 column 값들 몇개가 누락되어 있었다 간단한 실수지만 검색해도 명확하게 해결이 안돼서 힘든 문제였음. 2022. 4. 5.
[Android] Task와 back stack https://developer.android.com/guide/components/activities/tasks-and-back-stack 작업 및 백 스택 이해 | Android 개발자 | Android Developers 일반적으로 앱에는 여러 활동이 포함됩니다. 각 활동은 사용자가 실행할 수 있는 특정 종류의 작업을 중심으로 설계되어야 하며 다른 활동을 시작할 수 있어야 합니다. 예를 들어 이메일 앱에는 developer.android.com task와 back stack 이란? task는 유저가 앱과 소통하는 액티비티의 모음이다. 이러한 액티비티들은 스택 형태로 저장된다. 이를 back stack이라고 하며 액티비티를 open한 순서대로 저장된다. 예를 들면 메일 앱을 사용한다고 하자. 메일앱은.. 2022. 2. 17.
[Android] Property Animation, 속성 애니메이션 https://developer.android.com/guide/topics/graphics/prop-animation 속성 애니메이션 개요 | Android 개발자 | Android Developers 속성 애니메이션 개요 속성 애니메이션 시스템은 거의 모든 항목을 애니메이션으로 만들 수 있는 강력한 프레임워크입니다. 애니메이션을 정의하여 화면에 그리는지에 관계없이 시간 경과에 developer.android.com 프로퍼티 애니메이션, 속성 애니메이션이란? 안드로이드에는 수많은 애니메이션이 있다. 그중 가장 강력한 애니메이션을 뽑자면 당연 프로퍼티 애니메이션이다. 프로퍼티 애니메이션은 거의 모든것을 애니메이션화 시킬 수 있다 프로퍼티 애니메이션이란 특정한 값(프로퍼티)가 변화할 때, start값과 e.. 2022. 2. 9.
[Android] Transition Animation에서 주의사항 Transition Animation을 만들어서 firstScene과 secondScene을 왔다 갔다 하는 작업을 하는데 문제가 생겼다. 첫번째 씬 버튼에 리스너를 달아주고 세컨드 씬에서 다시 첫번째 씬으로 돌아오고 다시 첫번째 씬에서 버튼을 누르면 버튼이 먹통되는 문제였다. ViewGroup sceneRoot = getSCInf().getAct().findViewById(R.id.scene_root); Scene firstScene = Scene.getSceneForLayout(sceneRoot,R.layout.first, this); Scene secondScene = Scene.getSceneForLayout(sceneRoot,R.layout.second, this); getSCInf().getA.. 2022. 2. 7.
[Android] 안드로이드 transition animation https://developer.android.com/training/transitions 전환을 사용하여 레이아웃 변경 애니메이션 처리 | Android 개발자 | Android Developers 전환을 사용하여 레이아웃 변경 애니메이션 처리 Android의 전환 프레임워크를 사용하면 단순히 시작 레이아웃과 종료 레이아웃을 제공하여 UI에서 모든 종류의 모션을 애니메이션으로 보여줄 수 developer.android.com 1. Android Transition Framework Transition Animation이란 하나의 프래그먼트에 두개의 레이아웃을 정의 한 후 두 레이아웃간에 애니메이션을 넣는 기법이다. 안드로이드 transition framework는 startting layout과 end.. 2022. 1. 7.
안드로이드 inflate, inflater란? fragment, recyclerview를 공부하는데 inflate, inflater라는게 계속 등장하며 View를 하나 리턴하는데 이 View가 도대체 뭔지 몰라서 검색해서 찾아보니 다음과 같았다. inflate라는 작업은 xml을 파싱해서 객체화 시켜주는 작업을 말한다. 즉 inflater의 return의로 나오는 View는 내가 넣어준 xml이 파싱되서 나온 View 라는 것이다! 2021. 7. 19.
안드로이드 onSaveInstanceState onSaveInstanceState 이게뭐임? 안드로이드 액티비티는 다양하게 종료될 수 있음. 예를들어 스마트폰의 메모리가 부족할경우 안드로이드는 실행되고있는 앱들을 죽이기 시작함. 이때 앱이 죽기전에 엉엉 울면서 onSaveInstanceState라는 메소드에 자신의 유산을 남기고 죽을 수 있음. 어케씀? 1. 액티비티 클래스에 onSaveInstanceState 를 오버라이딩 하셈 2. 남기고 싶은 데이터를 key, value 쌍으로 Bundle에 저장한다 3. 액티비티 onCreate때 onSaveInstanceState 에서 key값으로 유산을 찾으면 됨 예제좀 다음예제는 앱이 죽기전에 사랑했던 물고기의 이름을 남기는 예제이다 앱은 죽기전에 "내가 사랑했던 물고기" 라는 key값과 "붕어"라는 v.. 2021. 7. 8.
안드로이드 ViewModel 사용하기 ViewModel 이란? 안드로이드 앱에 UI에 관한 정보를 담는 클래스이다 ViewModel 왜 씀? 내가 스마트폰에서 세로 기준으로 버튼을 누르면 숫자가 올라가는 앱을 만들었다고 하자 그런데 스마트폰을 가로로 돌리면 숫자가 초기화 된다. 이유는 간단하다. 가로로 돌리면 액티비티가 파괴되고 처음부터 onCreate를 시작으로 다시 생성되기 때문 이때 ViewModel에 데이터를 저장하면 UI에 관한 데이터를 보존할 수 있다. 안드로이드 공식 문서에도 앱을 설계할 때 아래와 같이 ViewModel + LiveData로 UI데이터를 보존하라고 명시하고 있다. https://developer.android.com/jetpack/guide?hl=ko 앱 아키텍처 가이드 | Android 개발자 | Androi.. 2021. 7. 8.
안드로이드 LiveData 기본예제 LiveData란? LiveData란 UI에 사용되는 데이터를 저장하는 class이다. 왜씀? 장점이 뭐임? UI에 사용되는 데이터가 바뀌면 그걸 실시간으로 반영해줌. 가령 내가 TextView에 Hello World! 라고 적었는데 이걸 Hell World!라고 바꿧다고 치자 그럼 나는 이걸 UI에 반영하려면 text = "Hell World!"; textView.setText(text); 라고 적어야 되는데 라이브 데이터를 이용하면 text = "Hell World"; //textView.setText(text); { boungaCounter.setValue("Number Of Bounga is " + Integer.toString(count++)); }); } } 결과 ADD BOUNGA 버튼을 클.. 2021. 7. 1.
안드로이드 Fragment 사용하기 Fragment란? 프래그먼트란 액티비티 위에서 화면을 유동적으로 구사해주는 안드로이드의 기법이다. 위 그림은 똑같은 앱을 테블릿과 스마트폰에 뛰운 모습이다. 테블릿은 한 화면에 두개의 프레그먼트를 보여주고 스마트폰은 하나의 프래그먼트를 보여준다. 보통 화면전환으로 intent를 이용한 액티비티전환을 많이 배우는데 속도도 느리고 코드관리도 어려와 나온 기능이다. 위와같은 그림으로 MainActivity에 프래그먼트가 들어갈 틀을 선언하고 틀 위에 올려놓을 프래그먼트를 여러개 만들어 끼우고 빼고 하는게 가능하다. 그럼 본격적으로 만들어보자 activity_main.xml 위의 이미지처럼 버튼두개를 만들고 프래그먼트가 들어갈 FrameLayout을 만들었다. 아직 아무 프래그먼트가 들어가지 않았으므로 텅 비.. 2021. 6. 30.
[Android] kotlin에서 안드로이드 Fragment 제거하기 Fragment를 add 해주고 add 해준 클래스로 remove를 하려 하니 아무것도 하지 않아서 한참 헤멨다 아래처럼 add할때 tag 달아준 뒤에 tag기준으로 remove 해주어야 한다 그럼 Fragment가 지워진다. supportFragmentManager.commit { supportFragmentManager.findFragmentByTag("mytag")?.let { remove(it) } } 2021. 6. 14.
반응형