분류 전체보기 13

[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] ScrollView 자동 스크롤과 사용자 스크롤

안드로이드 개발을 하다보면 스크롤 뷰를 쓸 일이 되게 많다. 최근에는 엔딩크레딧을 개발하게 됐는데 사용자가 스크롤도 하면서 자동으로 밑으로 스크롤이 되어야 하는 경우가 생겨 이것저것 찾아보다 touchlistener를 사용해 개발하게 되었다. NestedScrollView creditScrollView = creditDialog.findViewById(R.id.creditScrollView); final ObjectAnimator[] anim = {null}; creditScrollView.post(new Runnable() { @Override public void run() { creditScrollView.setScrollY(creditLogo.getTop() - 20); anim[0] = Obje..

Android 2020.06.02
반응형