Android 11

[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] 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

[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] Google에서 파라미터(referrer) 받아오기

유입경로를 분석을 하다 보면 구글에서 referrer를 받아와야 할 때가 있다 그럴 땐 BroadcastReceiver를 사용해 데이터를 받아오자 Receiver.java public class Receiver extends BroadcastReceiver { @Override public void onReceive (Context context, Intent intent) { String referrer = intent.getStringExtra("referrer"); if(referrer != null) { Log.i("Receiver", "Received the following intent : " + referrer); } } } 해당 Receiver를 구현하면 구글 플레이스토어에서 referre..

Android 2020.04.22
반응형