안드로이드 10

[Android] 다른 영역 터치 시 키보드 숨기기

id가 명시되어있지 않은 다른 부분을 터치했을 때 키보드가 보여져있는 상태면 키보드를 내리고 싶어서 서치해 봤다. 의외로 금방 찾았다. @Override public boolean dispatchTouchEvent(MotionEvent ev) { View view = getCurrentFocus(); // 현재 터치 위치 if (view != null && (ev.getAction() == MotionEvent.ACTION_UP || ev.getAction() == MotionEvent.ACTION_MOVE) && view instanceof EditText && !view.getClass().getName().startsWith("android.webkit.")) { // view 의 id 가 명시되어..

Android 2021.03.15

[Android] EditText shake Animation

회원가입 및 로그인 등 입력 받는 창을 만들다 보면 editText를 흔드는 애니메이션이 필요할 때가 있다 그럴 때에는 애니메이션을 만들어서 코드로도 쉽게 사용할 수 있게 하자. 1. cycle.xml 총 10번 editText를 흔든다. 2. shake.xml 0.5초 동안 흔든다 3. Java // animation Animation animation = AnimationUtils.loadAnimation(ShakeActivity.this, R.anim.shake); // editText 에 적용 후 포커스를 준다 editText.startAnimation(animation); editText.requestFocus();

Android 2021.01.13

[Android Studio] 선 없이 어플 실행/설치하기 (Wifi ADB Ultimate 사용법)

안드로이드에서 어플 테스트 하는 중 안 그래도 선이 많은데 휴대폰까지 연결해서 사용하려고 하니 너무 걸리적거려서 알아봤다. wifi adb ultimate는 같은 와이파이를 사용하고 있으면 어플 실행 및 설치 등등 log도 확인할 수 있는 편리한 플러그인이다. 1. 모든 항목 검색 (shift 두번 누르기 - 윈도우/맥 동일) 에 plugins 검색 2. marketplace 탭에서 wifi adb 검색 3. 설치 후 안드로이드 스튜디오 재실행 한 뒤 하단 terminal 선택 후 sdk 경로의 platform-tools 로 이동해주자 경로는 위와 같으면 된다 4. 제일 처음에 연결할 때에는 컴퓨터에 휴대폰을 연결해 주고 안드로이드 스튜디오에서 실행할 수 있는지 확인해 준다. 5. 연결이 됐다면 터미널에..

IDE 2020.10.07

[Android] Material Theme 사용 시 Button 레이아웃

안드로이드에서 여러가지 이유로 style에 테마를 MaterialComponents 로 사용하는 경우가 많다. 하지만 적용 후 일반 Button의 레이아웃이 먹지를 않거나 백그라운드 및 다크테마가 적용이 되는 경우가 많은데 나도 이런 상황 때문에 안드로이드 버튼에 시간을 꽤 써서 같은 실수를 반복하지 않기 위해 적어둔다. 기존 레이아웃.xml 바뀐 레이아웃.xml 이렇게 Button > androidx.appcompat.widget.AppCompatbutton 이라고 명시해 주면 MaterialButton과 헷갈리지 않아 레이아웃이 적용이 되는 걸 볼 수 있다. 이거 때문에 거의 하루 날렸다... 참고한 링크 : https://stackoverflow.com/a/52673168/7017299 Can't ..

Android 2020.10.07

[Android] ImageView Animation

ImageView의 drawable을 변경할 때 애니메이션 효과를 줄 수 있다. 일단 주고 싶은 애니메이션을 res/anim에 저장해두자 1. image_fade_in.xml 2.image_fade_out.xml 이후 사용할 activity나 fragment에서 아래 코드를 작성한다. 3. MainActivity.java private void changeImageWithFadeInAndOut(final ImageView imageView, final int resID) { final Animation fadeInAnim = AnimationUtils.loadAnimation(MainActivity.this, R.anim.image_fade_in); Animation fadeOutAnim = Animat..

Android 2020.06.03

[Android] TelephonyManager 통화상태 확인하기

안드로이드 어플을 플레이 스토어에 등록할 때 통화 중일 때 노래가 나오면 반려되는 경우가 있었다. 그래서 통화 상태를 구해 코딩을 해봤다 1. AndroidManifest.xml 통화 상태를 확인하려면 권한이 무조건 있어야 하니 추가해 주자. 참고로 플레이스토어 등록할 때 이 권한을 필요로 하는 앱이라면 이용약관이 필요하다. 2. 노래가 나오는 activity TelephonyManager telephonyManager; boolean isCalling = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_m..

Android 2020.06.02

[Android] Dialog Animation

다이얼로그를 밋밋하게 띄우는 것보다 애니메이션을 줘서 사용자가 봤을 때 보다 더 부드러운 화면을 주게 된다. 1. 다이얼로그 띄울 activity Dialog dialog = new Dialog(this, android.R.style.Theme_Black_NoTitleBar); dialog.getWindow().getAttribute().windowAnimation = R.style.AnimationPopupStyle; 2. style에 AnimationPopupStyle 추가 3. res 에 anim 폴더 생성 후 open.xml / close.xml 추가 - open.xml - close.xml

Android 2020.06.02

[Android] 딥링크(Deep-Link) 설정 및 부르기

딥링크는 웹의 주소와도 같다 특정 주소 혹은 값을 입력하면 앱이 실행되거나 앱 내 특정 화면으로 이동시키는 기능을 수행하는 게 딥링크다 딥링크는 크게 세 가지로 구분된다 1) URI 스키마 방식 : 앱에 호스트 및 스키마를 등록하여 딥링크 사용 2) 앱 링크(App Link) : 도메인 주소를 이용한 딥링크 사용 - Android 3) 유니버셜 링크 (Universal Link) 도메인 주소를 이용한 딥링크 사용 - iOS 오늘은 URI 스키마 방식을 얘기해보겠다 URI 스키마 방식은 가장 일반적으로 사용되는 딥링크다 구성은 Scheme://host 으로 구성되어있다 여기서 Scheme는 앱을 지칭하고 host는 앱 페이지를 지칭한다 설정은 AndroidManifest에서 가능하다 이런 방식으로 구성을 ..

Android 2020.04.23

[Android] 웹뷰 가속화

하이브리드 앱을 개발하다보니 웹뷰가 너무 느려서 버튼 하나 누르고 기다리고 하나 누르고 기다리는 일이 많아졌다 그럴 때에는 가속화를 하면 빨라지기는 한다. 하지만 웹이 무거운 것이 대부분의 이유라 다른 기능들을 추가하다보면 똑같이 다시 느려질 수 있으니 웹을 먼저 튜닝하자 웹 튜닝 사이트 1. Pingdom Pingdom Tools Full Page Test Analysis tools.pingdom.com 페이지 용량이나 다운로드 속도, 코드분석을 통한 성능 등급과 개발 제안, 웹페이지의 다이어트 진행상황 기록 가능 2. Google PageSpeed Insights PageSpeed Insights 모든 기기에서 웹페이지 속도를 개선해 보세요. developers.google.com 구글에서 운영하고 ..

Android 2020.04.22
반응형