코틀린-버튼컬러 액션

리소스xml 파일 생성 후 아래내용 참고(res/color/btn가정) <?xml version=”1.0″ encoding=”utf-8″?> <selector xmlns:android=”http://schemas.android.com/apk/res/android”> <item android:color=”#ffff0000″ android:state_pressed=”true”/> <item android:color=”#ff0000ff” android:state_focused=”true”/> <item android:color=”#ff000000″ /> </selector> 액티비티 xml에서 아래내용 참고 <Button android:layout_width=”match_parent” android:layout_height=”match_parent” android:text=”Click” android:textColor=”@color/btn”/>

코틀린-GridLayout 가운데 정렬

GridLayout은 android:layout_gravity=”center” 설정하면 쉽게 가운데 정렬이 가능하다. 문제 GridLayout 내부에 추가한 뷰들이 가운데 정렬이 안되어 이것저것 찾아보다 android:gravity=”center” android:layout_width=”0dp” android:layout_columnWeight=”1″ 를 추가하여 해결하였다.  핵심은 요놈 android:layout_columnWeight=”1″ 설정함으로써 여백확장을 하면 된다. <GridLayout android:layout_width=”match_parent” android:layout_height=”wrap_content” android:columnCount=”3″ android:orientation=”horizontal” android:layout_gravity=”center”> <TextView android:gravity=”center” android:layout_width=”0dp” android:layout_columnWeight=”1″ android:layout_height=”wrap_content” android:paddingLeft=”20dp” android:paddingRight=”20dp” android:text=”1″ android:textSize=”80sp” android:textStyle=”bold” /> <TextView android:gravity=”center” android:layout_width=”0dp” android:layout_columnWeight=”1″ android:layout_height=”wrap_content” android:text=”2″ android:textSize=”80sp” android:textStyle=”bold” …
코틀린-GridLayout 가운데 정렬 더보기

안드로이드 자동업데이트 끄기

adb로 차단 개발자옵션 활성화 USB디버깅활성화 adb shell pm disable-user com.wssyncmldm adb kill-server 폰 재시작 폰설정으로 차단 개발자옵션 활성화 개발자옵션에서 자동업데이트 끔 설정-소프트웨어 업데이터에서 자동업데이트 끔 설정 – 생체인식 및 보안 – 기타보안설정 – 보안정책 업데이트 차단

시놀로지 DSM 7.x openvpn 연결

안녕하세요. 부사리입니다. 시놀로지 DSM7.x환경에 openvpn 서버 설정 후 접속했는데 접속이 자주 끊어지고 IP가 변경되지 않는 증상이 발생하더군요. 그래서 아래와 같이 설정 했더니 정상 작동하여 기록해 보았습니다. 공유기에서 UDP 1194 포트 오픈 OpenVPN 구성파일 – 내보내기  다운로드한 openvpn.zip를 압축해제 압축해제한 VPNConfig 파일을 메모장으로 오픈하여 1) YOUR_SERVER_IP 를 IP주소 또는 도메인으로 변경 2) #redirect-gateway def1 를 아래와 …
시놀로지 DSM 7.x openvpn 연결 더보기

안드로이드 폰에 USB케이블 연결시 기본값 USB테더링으로 설정하기

안녕하세요. 부사리입니다. 제가 있는 곳은 보안때문에 와이파이를 차단하는 환경입니다. 그래서 가끔씩 핸드폰에 USB케이블을 연결하여 USB테더링을 이용하는데 USB연결하면 기본이 파일전송으로 되어 있어 매번 USB테더링 사용으로 변경해야 하는 번거러움이 있어 기록해 두겠습니다. 선작업은 디버깅모드가 활성화 되어있어야 합니다. 아래 동영상 참고바랍니다.   *** 한줄 요약 설정 -> 개발자옵션 ->기본USB구성 -> USB 테더링 

코틀린-SplashActivity-빌드 후 ADT에서 앱이 실행 안되는 경우

SplashActivity를 이용하여 앱을 하나 만들었는데 빌드 후 앱이 실행되지 않는다. 당연히 빌드 에러는 하나도 발생하지 않았다. 물리적 안드로이드폰을 연결하면 자동실행은 아니더라고 설치까지는 되는데 수동실행해야한다. ADT는 앱 아이콘만 생기고 설치가 안되었다고 실행도 안된다. 해결방법은 간단하다. AndroidManifest.xml에서 <activity android:name=”.SplashActivity” android:exported=”flase”> 을 <activity android:name=”.SplashActivity” android:exported=”true”> 로 변경하면 된다.  

안드로이드 스튜디오 Can’t determine type for tag ….. 오류

안드로이드 스튜디오에서 빌드 중 아래와 같은 오류가 발생하였다. Can’t determine type for tag ‘<macro name=”m3_comp_bottom_app_bar_container_color”>?attr/colorSurface</macro>’ dependencies 버전이 안 맞아 발생하는데 Gradle Scripts -> build.gradle(Module…app) 오픈 dependencies 리스트 중 implementation ‘com.google.android.material:material:1.7.0’ 를 implementation ‘com.google.android.material:material:1.6.1’ 으로 변경해면 해결됨.

안드로이드 스튜디오 – bumblebee, dolphin : FireBase 연동방법

안드로이드 스튜디오를 돌핀으로 업그레이드 후 FireBase를 적용하려고 기존 북극여우 버전에서는 문제없는데 돌핀에는 Firebase 사이트에 있는 방법으로 하면 오류가 발생하여 돌핀버전에 적용하는 방법을 정리해둔다.   google-services.json 파일은 기존 방법대로 적용한다. Project- build.gradle 오픈하여 제일 위에 아래 내용추가 //아래 firebase용 추가 시작 buildscript { repositories { // Make sure that you have the following two repositories google() …
안드로이드 스튜디오 – bumblebee, dolphin : FireBase 연동방법 더보기

Log.v, Log.d, Log.i, Log.w, Log.e

v  verbose , 검은색. 개발중 나타내는 로그 d debug, debug 로그. DDMS Logcat 상 검정색 파란색 i  information , 일반 정보표시. 초록색 w  warning, 경고표시. exception에 자주사용, 주황색 e error,  error로그,   exception / Error 발생의 경우 시스템이 사용, 빨간색

import kotlinx.android.synthetic.main.activity_main.* 등록이 안되는 경우

부사리-한줄요약 build.gradle (Module: … app) 오픈 -> id ‘kotlin-android-extensions’ 추가 -> 오른쪽 상단 Sync Now 클릭 -> 끝 오랫만에 안드로이드 스튜디오를 실행하고 프로젝트를 생성한 후 activity_main.xml에 버튼 하나를 추가하였다. 이후 MainActivity.kt로 와서 버튼 id를 입력하였더니 빨간색 글씨로 나오면서 연결이 되지 않는다. 예전에는 id값을 입력하면 아래 같이 자동팝업이 나왔고 엔처를 치면 아래와 같이 import kotlinx.android.synthetic.main.activity_main.* 이 …
import kotlinx.android.synthetic.main.activity_main.* 등록이 안되는 경우 더보기