[안드로이드] Opacity(투명도) 설정 방법

[Opacity 컬러코드 투명도 Hex 값] 100% — FF 95% — F2 90% — E6 85% — D9 80% — CC 75% — BF 70% — B3 65% — A6 60% — 99 55% — 8C 50% — 80 45% — 73 40% — 66 35% — 59 30% — 4D 25% — 40 20% — 33 15% — 26 10% — 1A 5% — 0D 0% — 00 [안드로이드에서 View에 투명도 설정하는 방법] 각 Opacity 퍼센트에 따라 16진수로 2자리 숫자가 정해져있다. 해당 숫자 + 000000 를 붙여서 각 퍼센트에 맞는 투명도(Opacity)를 지정해줄 수 있다. res-drawable 폴더에 xml 파일을 생성하고, selector 태그 안에 투명도를 설정해준다. 해당 xml을 투명도를 지정하고자 하는 view에 background로 지정해준다.

2023년 3월 28일
·
0개의 댓글
·
post-thumbnail

MVVM 패턴

MVVM 패턴 구조 View : UI 요소를 표시하며 사용자가 발생한 이벤트를 받는 역할을 합니다. ViewModel : UI 요소에 들어갈 데이터를 관리합니다. 그리고 Model과 View 사이의 다리 역할을 합니다. Model : 데이터 전반적인 것을 처리하는 역할을 합니다. MVVM 패턴의 장점 여러 화면이 있더라도 비슷한 데이터를 가지고 있는 애라면 같은 ViewModel을 공유할 수 있다. (MVP 처럼 1:1이 아니기 때문) ViewModel이 직접적으로 요소를 그리라고 View에게 요청하지 않기 때문. MVVM 패턴의 단점 간단한 프로젝트에 사용하기에는 과하다. 비교적 구현 구조가 복잡하고 설계가 수비지 않다. MVVM 패턴 구현 이번 예제의 프로젝트 구조입니다. ![](https://velog.velcdn.com/images/true_je0n/post/146c9751-d9bf-4b46-85f4-3f5350d59843/image.PN

2023년 2월 20일
·
0개의 댓글
·
post-thumbnail

AAC (Android Architecture Component)

1.Lifecycles(Easy handling lifecycles) 2.LiveData(Lifecycle aware observable) 3.ViewModel(Managing data in a lifecycle) 4.Room(object Mapping for SQLite) 5.Paging(Gradually loading information) 6.Databinding 7.Navigation 8.WorkManager Lifecycles (앱의 수명주기를 관리) Lifecycles는 라이브러리 이름 답게 생명주기 모니터링을 돕습니다. 크게 2가지로 구성되어 있습니다. Lifecyle Owner : Activity, Fragment에서 생명주기를 분리하여 Lifecycle 객체에 담습니다. Lifecycle 객체를 통해 다른 곳에서 해당 화면의 생명주기를 모니터링 할 수 있는데 자신의 생명주기를 담은 Lifecycle 객체가 Lifecycle Owner 입니다. Life

2023년 2월 20일
·
0개의 댓글
·
post-thumbnail

[안드로이드, JAVA] RecyclerView Databinding 체크박스 클릭

대충 코드설명 TabFragment 하단에 RecyclerView를 넣어서 DataBinding으로 데이터들을 넣어주고, RecyclerView의 왼쪽부분에 checkbox가 있는 상황. 그리고 이 전체 체크박스를 한꺼번에 클릭할 수 있는 전체클릭 버튼이 TabFragment에 위치함. 우선 RecyclerView Databinding으로 구현된 체크박스가 클릭되게 하는 부분부터 설명하고 전체 체크박스 클릭 기능은 차차 작성하도록 하겠다. 1. RecyclerView 어댑터, ViewHolder 만들기 2. Fragment.java 에서 setOnItemClickListener 구현하기.

2023년 2월 7일
·
0개의 댓글
·
post-thumbnail

[모바일컴퓨팅] 2주차 정리

모바일컴퓨팅 2주 강의 개요 시작 화면과 업데이트 여부 확인 프로젝트 생성 코드 편집기 디자이너 도구 시작화면 하단의 링크를 이용해 업데이트 여부 확인. 새로운 프로젝트 생성 : Test라는 이름의 새로운 프로젝트 생성 -> 프로젝트 명의 첫글자는 무조건 대문자로. 초기 Activity는 Empty Activity를 사용한다. 프로젝트 창의 구성과 기능 : 프로젝트 영역과 작업 영역. res 폴더 안에 resource 파일이 들어있다. res - drawable, layout - UI(디자인), mipmap, values - value(xml) xml 파일은 집, java 파일은 집 안의 물건. 테마 변경하기 : 어두운 테마로 변경하고 싶은 경우. 보통 어두운 테마를 많이 쓰지만, 요즘 하얀 테마를 쓰기도 한다. 코드 편집기 : 코드에서 발생한 에러 표시. 파일 변경사항 반영 : Gradle을 빌드

2022년 3월 31일
·
0개의 댓글
·

[모바일컴퓨팅] 1주차 정리

모바일컴퓨팅 1주 - 학습평가 안드로이드는 리눅스 커널 위에서 동작한다 : O 리눅스 커널 위에서 동작. 빌드 시에는 DEX 포맷으로 만들어지고 실행 시에는 ART 런타임에서 실행됨 앱은 애플리케이션 프레임워크 위에서 실행됨 x86 시스템 이미지는 BIOS 변경이 필요할 수도 있다 : O 왼쪽 프로젝트 창에서 res는 리소스들이 있다. : O 강의교재 : Do it! 안드로이드 앱 프로그래밍

2022년 3월 31일
·
0개의 댓글
·

[220324] 코드리뷰_FloatingView

TYPEAPPLICATIONOVERLAY : 터치 이벤트가 발생하지 않아서 View의 위치 이동 불가능. TYPE_PHONE : 일반 앱에서 사용되는 윈도우보다 위에 그려져야 할 때 사용한다. 안드로이드에서 자주 사용되는 윈도우들 ① FIRSTAPPLICATIONWINDOW 또는 TYPEBASEAPPLICATION (1) : 액티비티 기본 윈도우로 사용됨. ② TYPE_APPLICATION (2) : 다이얼로그의 윈도우로 사용된다. ③ FIRSTSUBWINDOW 또는 TYPEAPPLICATIONPANEL (1000) : 팝업 윈도우 혹은 팝업 메뉴에 사용된다. ④ TYPEAPPLICATIONMEDIA (1001) : SurfaceView가 사용하는 윈도우로, 동영상 재생 등에 사용된다. ⑤ TYPEAPPLICATIONATTACHED_DIALOG (1003) : 옵션/컨텍스트 메뉴에 사용된다. ⑥ TYPE_TOAST (2005) : 토스트팝업에

2022년 3월 24일
·
0개의 댓글
·
post-thumbnail

[220323] 코드리뷰_EndBtn_Service

onBind() : ① 서비스 바인딩이란(Service Bind) : startService() 메소드 대신 bindService() 메소드를 통해서 시작되는 서비스를 서비스 바인딩(Service Bind 혹은 Bound Bind) 라고 합니다. 이 서비스는 마치 클라이언트-서버처럼 동작합니다. 서비스가 서버역할을 합니다. 액티비티는 서비스에 어떠한 요청을 할 수 있고, 서비스로부터 어떠한 결과를 받을 수 있습니다. 프로세스 간 통신에도 사용됩니다. 서비스 바인딩은 연결된 액티비티가 사라지면 서비스도 소멸됩니다. (즉, 백그라운드에서 무한히 실행되진 않습니다.) 하나의 서비스에 다수의 액티비티 연결 가능합니다. 애플리케이션 안의 기능을 외부에 제공하는 경우에 많이 사용합니다. 서비스바인딩 구현&동작 : 서비스 바인딩 객체를 생성하려면 콜백 메소드인 onBind()를 구현해야 합니다. onBind()는 IBinder를 반환하는데, 바로 이 객체가 '서비스'와 '클리언트' 사이

2022년 3월 23일
·
0개의 댓글
·

[220322] 코드리뷰_EndBtn_Service

BroadCastReceiver() : 4대 컴포넌트 중에 하나로, 단말기 안에서 이루어지는 수많은 일들을 대신해서 알려준다. (ex - 배터리부족, SMS문자메세지, 전화가 옴) onReceive() : BroadCastReceiver()를 상속받으며, intent-filter를 통해 걸러진 intent를 받아들이는 곳이다.

2022년 3월 22일
·
0개의 댓글
·

[220322] 코드리뷰_screenCapture_2

FileOutputStream : 데이터를 파일에 바이트 스트림으로 저장하기 위해 사용한다. FileOutputStream 생성자 : ① FileOutputStream(File file) : 주어진 File 객체가 가리키는 파일을 쓰기 위한 객체를 생성. 기존의 파일이 존재할 때는 그 내용을 지우고 새로운 파일을 생성. ② FileOutputStream(String fileName) : 주어진 이름의 파일을 쓰기 위한 객체를 생성 ③ FileOutputStream(String fileName, boolean append) : 주어진 append 값에 따라 새로운 파일을 생성하거나 또는 기존의 내용에 추가. bitmap.comperss() : 파일 압축. getRotation() : 화면 회전상태 확인. setOnImageAvailableListener() : 호출될 리스너 등록. disable() : 못하게 막음. DisplayMetrics :

2022년 3월 22일
·
0개의 댓글
·

[220321] 코드리뷰_screenCapture1

MediaProjectionManager : 특정 유형의 MediaProjection 토큰 검색을 관리합니다. => MediaProjection을 이용하는 전체 API : https://developer.android.com/reference/android/media/projection/package-summary.html MediaProjection : ① 응용 프로그램에 화면 콘텐츠를 캡처하거나 시스템 오디오를 녹음할 수 있는 권한을 부여하는 토큰입니다. ② 화면의 데이터를 가져오거나 음성 데이터를 가지고 가져오기 위한 API입니다. 실제 동작은 영상만 가능합니다. MediaProjection.Callback : ① 프로젝션 세션의 콜백. ② MediaProjection 처리에 대한 Callback을 받을 수 있습니다.(Stop 등) MediaProjectionManager : ① 특정 유형의 MediaProjection 토큰 검색을 관리합니다. ② MediaPr

2022년 3월 21일
·
0개의 댓글
·

[220321] 코드리뷰_MainActivity

setEnabled() : setEnabled를 알기 위해서는 먼저 isEnabled()를 알아야 한다. isEnabled()는 뷰를 활성/비활성화 상태로 만들어주는 메서드로, false로 설정하면 개발자가 설정해 둔 대로 모양이 바뀌고(아무것도 설정하지 않았다면 바뀌지 않는다.), 터치 이벤트와 여러 메서드의 호출이 무시된다. 즉, 사용 가능한지의 여부이다. 반대로 true로 설정하면 사용 가능한 상태로 상태로 변환되며, 터치 이벤트와 여러 메서드의 호출이 잘 작동된다. => 쉽게 말하자면, setEnabled(true)는 활성화, setEnabled(false)는 비활성화이다. AccessibilityManager : 우리말로 번역하면 접근성 관리자라는 뜻으로, 접근성 서비스에 등록된 서비스들은 이 AccessibilityManager 클래스의 영향을 받는데, 시스템에서 발생하는 기본적인 접근성 이벤트 외에 추가적인 이벤트(sendAccessibilityEvent)를 발

2022년 3월 21일
·
0개의 댓글
·

[220321] 안드로이드 공부 정리.

SharedPreferences : 저장하려는 키-값 컬렉션이 비교적 작은 경우 사용하는 API. 키-값 쌍이 포함된 파일을 가리키며, 키-값 쌍을 읽고 쓸 수 있는 간단한 메서드 제공, 프레임워크에서 관리하며 비공개, 공유 모두 가능하다. e.printStackTrace() : 에러의 발생 근원지를 찾아서 단계별로 에러를 출력. MODEWORLDREADABLE : 외부 앱에서 읽기 가능. URLEncoder : 웹 개발 시 URL의 여러가지 규칙 대문에 규칙에 맞게 문자를 변환해야 하는 경우가 생기는데, 이럴 때 인코딩(부호, 암호화)과 디코딩(부호, 암호화를 해제)를 한다. (ex - 쿠키처럼 한글을 표현하지 못하는 경우, ASCII 값으로 인코딩) 인코딩과 디코딩을 하기 위해서 필요한 것이 바로 URLEncoder와 URLDecoder이다. InputMethodService : 입력방식(IME)을 생성하기 위해 Input Method Service

2022년 3월 21일
·
0개의 댓글
·