[Android/Training] View를 사진으로 저장하기
·
Android/튜토리얼 및 가이드
1. View를 캡처합니다. 현재 시간을 기준으로 사진 제목을 생성합니다. 캡처할 뷰와 사진 제목을 인자로 captureReceipt 함수를 호출합니다. captureReceipt 함수에서 뷰를 캡처하고, Bitmap 형태로 변환합니다. 안드로이드 버전에 따라 저장소의 경로가 다르므로, 안드로이드 버전에 따라 다른 함수를 호출하여 이미지를 저장합니다. private void makeTitle() { SimpleDateFormat sdf = new SimpleDateFormat( "yyyyMMddHHmmss"); Date time = new Date(); String captureTitle = sdf.format(time); // 사진제목 captureView({layout}, captureTitle); ..
[Android/Layout]TextView 일부에 Link를 넣고 싶을 때? Linkify
·
Android/UI-UX 디자인
TextView에서 일부 글자에만 Link를 삽입하고 싶을 때 쓰는 방법입니다. Linkify는 텍스트 조각과 정규식을 가져와 텍스트의 모든 정규식 일치 항목을 클릭 가능한 링크로 바꿔줍니다. private void setLinkify() { Linkify.TransformFilter transformFilter = (matcher, s) -> "{이동하고 싶은 url}"; Pattern pattern = Pattern.compile("{링크를 연결하고 싶은 텍스트}"); Linkify.addLinks(_binding.agree2, pattern, "", null, transformFilter); } Linkify.MatchFilter 패턴과 일치하는 문자 범위를 검사하고 일치를 실행 가능한 링크로 전환..
[Android/Async]Process, Thread에 대한 기본개념
·
Android/네트워킹
Process란? 메모리에 올라와 있는 실행중인 프로그램 인스턴스. 운영체제로부터 시스템 자원을 할당받는 작업의 단 사용 중인 파일, 데이터, 프로세서의 상태, 메모리영역 주소 공간, 쓰레드 정보, 전역 데이터가 저장된 메모리 부분 등 수많은 자원을 포하하는 개념. 종종 스케줄링의 대상이 되는 작업이라고 불리기도 함. Process 상태 전이 Dispatch (ready → running): 여러 프로세스들 중 한 프로세스를 선정하여 CPU에 할당 Time Run Out (running → ready): 할당된 시간이 지나면 Timeout Interrupt Event Wait (running → waiting): I/O 입출력 발생 Wake-Up (waiting → ready): I/O 요청이 완료되면 ..
[Android/Layout]TextView에서 끝에 .. 처리하기
·
Android/UI-UX 디자인
텍스트뷰를 한줄로 표시하면서, 글자수가 넘어갈 경우 생략 표시를 하려면 maxLines와 ellipsize를 사용하면 된다. ellipsize = "end" : 뒷부분을 ...으로 표시 ellipsize = "middle" : 중간 부분을 ...으로 표시 ellipsize = "none" : ...없이 뒷부분을 잘라서 표시 (default) maxLines : 최대 TextView 줄
[Android/Layout]소스에서 컬러에 알파값 추가하기
·
Android/UI-UX 디자인
Alpha값이란? Color에서 '투명도' 색상값을 입력할 때, # 이후에 Alpha값을 넣어주면 됨 원하는 투명도 퍼센티지는 아래 값 참고 ex) #(Alpah)(Color) => #CCFFFFFF :: 투명도가 80%인 흰색 Alpha값 100% — FF 99% — FC 98% — FA 97% — F7 96% — F5 95% — F2 94% — F0 93% — ED 92% — EB 91% — E8 90% — E6 89% — E3 88% — E0 87% — DE 86% — DB 85% — D9 84% — D6 83% — D4 82% — D1 81% — CF 80% — CC 79% — C9 78% — C7 77% — C4 76% — C2 75% — BF 74% — BD 73% — BA 72% — B8 7..
[Android/Layout]xml에서 tools 란?
·
Android/UI-UX 디자인
안드로이드에서 xml을 작성하다 보면 android, app, tools를 만나게 됩니다. 처음엔 그냥 안드로이드에서 추천해주는 코드대로 쓰다보니 저들의 관계에 대해 생각해보지 않다가 우연히 tools 용도에 대해 알게되어 작성해보려고 합니다. 1. 실제 소스상에서는 나타나지 않지만, Preview에서는 보고 싶을 때 사용 2. text, visibility, listitem 등이 있음 3. 참고링크 : https://developer.android.com/studio/write/tool-attributes
[Android]Deeplink
·
Android/도구 및 라이브러리
2023.05.29 - [Android]DeepLink와 Scheme DeepLink란? DeepLink란 특정 페이지에 도달할 수 있는 링크를 의미한다. DeepLink는 특정 주소 혹은 값을 입력하면 앱이 실행되거나 앱 내 특정 화면으로 이동시키는 기능을 수행한다, 지연된 DeepLink는 앱 설치 후 실행하면 특정 화면으로 바로 이동하게 된다. DeepLink의 구분 방식 URI 스킴 방식: 앱에 URI 스킴(scheme) 값을 등록하여 딥링크 사용 앱링크(App Link): Android 제공 - 도메인 주소를 이용한 딥링크 사용 유니버셜 링크 (Universal Link): iOS 제공 - 도메인 주소를 이용한 딥링크 사용 DeepLink의 형태 Scheme://Path Scheme → 앱을 특..
[Android/Firebase]RemoteConfig로 메시지 가져오기
·
Android/데이터 저장 및 관리
1. Firebase Console에서 Remote Config 추가하기 (1) Firebase Console로 들어간 뒤 메뉴에서 Remote Config 페이지로 접속한다. (2) 매개변수를 추가한다. (3) 작성이 완료되면 아래와 같이 나온다. 2. Android에서 Remote Config 값 가져오기 (kotlin) (1) gradle:app 추가 implementation platform('com.google.firebase:firebase-bom:28.4.2') implementation 'com.google.firebase:firebase-analytics-ktx' implementation 'com.google.firebase:firebase-config-ktx' (2) RemoteCon..
[Android/Error]This version of the Android Support plugin for IntelliJ IDEA
·
Android/에러 및 이슈 사항
두 대의 노트북으로 개발을 하다보니 한 노트북에서는 다음과 같은 오류가 났다. 해당 문제는 안드로이드 스튜디오 버전이 맞지 않을 경우 생기는 문제이다. 해결 1. 낮은 버전의 안드로이드 스튜디오를 업데이트하여 높은 버전과 맞춰준다. 해결 2. 아래 buildscript를 build.gradle(project)에 추가해준다. buildscript { repositories { google() mavenCentral() } dependencies { classpath "com.android.tools.build:gradle:7.0.2" } } plugins { id 'com.android.application' version '7.0.0' apply false id 'com.android.library' v..
[Android/Error]onError: retrofit2.adapter.rxjava3.HttpException: HTTP 404 Not Found
·
Android/에러 및 이슈 사항
RxJava3와 Retrofit2을 이용하여 로또 당첨 번호를 조회하는 도중 해당 오류를 만났다. 404 오류는 주소가 틀렸을 때 나타나는 오류이다. 1. retrofit init은 다음과 같다. init { val retrofit = Retrofit.Builder() .baseUrl("https://www.dhlottery.co.kr/common.do/") .client(OkHttpClient()) .addCallAdapterFactory(RxJava3CallAdapterFactory.create()) // 받은 응답을 observable 형태로 변환 .addConverterFactory(GsonConverterFactory.create()) .build() api = retrofit.create(Lo..
[Android/Error]java.lang.NumberFormatException: Expected an int but was 106112471000
·
Android/에러 및 이슈 사항
위와 연결하여 로또 당첨번호를 받아오는 도중 다음과 같은 에러를 만났다. 느낌에 106112471000를 포맷화할 수 없어 생긴 오류 같았다. 106112471000는 해당 로또 회차의 총 판매금액이었고, 이걸 나는 Int로 받아오고 있었다. 받아오는 변수 타입을 Long으로 바꿔주면 된다. long 최대값 : 9,223,372,036,854,775,807 int 최대값 : 2,147,483,647
[Android/Gradle]Gradle에서 APK 생성 타입 설정하기
·
Android/Android 기초
Gradle에서 APK 생성 타입 설정하기 회사에서 apk를 추출하는데 자동으로 이름이 생성이 되고, 직접 폴더를 만들어 그 폴더에도 저장이 된다. gradle에 해당 코드가 있었고, 찾아보니 gradle을 통해 설정할 수 있는 기능이었다. 1. apk 생성 시 빌드타입, 날짜, 버전명 자동 기입 build.gradle (:app) android { ... buildTypes { ... applicationVariants.all { variant -> variant.outputs.all { def name = parent.project.getName() def buildType = variant.buildType.name def versionName = variant.versionName outputFi..
[Android/Basic]BaseActivity
·
Android/Android 기초
BaseActivity란? 여러 Activity를 사용할 때 중복되는 코드를 미리 정의하여 필요한 코드만 구현하도록 사용하는 기본 액티비티 T: ViewDataBinding , R: BaseViewModel => 코드의 중복을 줄이고 가독성 강화 AppCompatActivity란? setSupportActionBar(Toolbar) API를 사용하여 action item, navigation mode 등을 포함하는 action bar를 지원 Theme.AppCompat.DayNight 테마를 사용하며 AppCompatDelegate.setDefaultNightMode(int) API를 사용하여 다크 모드를 지원 getDrawerToggleDelegate() API를 사용하여 DrawerLayout과 통합
[Android/Jetpack]ViewModel + Databinding + LiveData
·
Android/Jetpack
구현을 위한 이전글 [프로그래밍]MVVM 패턴 MVVM패턴이란? View - ViewModel - Model View: 사용자에게 보이는 화면 ViewModel: View를 표현하기 위해 만든 View를 위한 Model && View를 나타내주기 위한 데이터 처리 담당 Model: 어플에서 사용되는 데이터 및 anovice-dp.tistory.com [Android/Jetpack]Databinding 사용하기 (1) 기본 세팅 build.gradle (java는 아래 코드만 추가) android { ... dataBinding { enabled = true } ... } build.gradle (kotlin의 경우, 아래 코드도 추가) apply plugin: 'kotlin-kapt' ... depend..
[Android/Jetpack]LiveData
·
Android/Jetpack
LiveData란? 식별 가능한 데이터 홀더 클래스. 스스로 수명주기를 인식함 Data의 변경을 관찰할 수 있는 Data Holder 클래스 UI와 데이터 상태의 일치 보장 메모리 누출이 없음 비정상 종료가 없음 수명주기를 자동으로 관리 최신의 데이터 유지 기기회전 등 프래그먼트나 액티비티가 재생성되어도 데이터의 변화가 없음 ViewModel과 함께해야 효과가 커짐 ViewModel 안에 있는 LiveData 객체를 DataBinding을 통해 UI에서 관찰만 할 수 있도록 만들면 액티비티나 프래그먼트에서 일일히 데이터를 갱신할 필요 없이 알아서 UI에 최신 데이터가 보이게 될 것 Observable과 다르게 LifeCycle을 알고있음 → 활성(active:STARTED/RESUMED)상태일 때만 데이..
뿌꾸 빵
'Android' 카테고리의 글 목록 (2 Page)