본문 바로가기

분류 전체보기

(72)
[Android] 앱 Background로 보내기 https://ohdbjj.tistory.com/6 [Android] Activity Stack, Task 확인하기 Android 개발을 하면서 StartActivity를 여러 번 하다보면 Activity들이 생각한 대로 쌓였는지 확인해야 할 때가 생길 수 있습니다. 저는 launchMode랑 Intent Flag들을 공부하면서 사용해 보던 중 Activity Stack.. ohdbjj.tistory.com YouTube, Facebook 등 다양한 앱들의 Activity Stack을 확인하던 중 Chrome 앱이 Back키를 눌러 앱을 종료했을 때도 Background에 살아있더군요. 신기하여 관련 코드를 찾아보았습니다. @Override public void onBackPressed() { /* 둘 ..
[Android] onMeasure 함수의 인자들 CustomView에서 onMeasure 사용.. onMeasure 함수는 View의 크기 계산하는 함수라 할 수 있을거 같습니다. 함수 내에서 setMeasuredDimension(width, height)를 호출하면서 정확한(계산된) 크기를 정하게 되죠. ... @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { final int widthMode = MeasureSpec.getMode(widthMeasureSpec); final int widthSize = MeasureSpec.getSize(widthMeasureSpec); final int heightMode = MeasureSpec.getMode(he..
[Android] EditText가 아닌 다른 곳 클릭시 키보드 내리기 public class MainActivity extends AppCompatActivity { ... @Override public boolean dispatchTouchEvent(MotionEvent ev) { View focusView = getCurrentFocus(); if (focusView != null) { Rect rect = new Rect(); focusView.getGlobalVisibleRect(rect); int x = (int) ev.getX(), y = (int) ev.getY(); if (!rect.contains(x, y)) { InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVI..
[Android] Activity Stack, Task 확인하기 Android 개발을 하면서 StartActivity를 여러 번 하다보면 Activity들이 생각한 대로 쌓였는지 확인해야 할 때가 생길 수 있습니다. 저는 launchMode랑 Intent Flag들을 공부하면서 사용해 보던 중 Activity Stack을 확인하면 확실히 이해할 수 있을 것 같아 확인하는 방법을 알아봤습니다. ADB 환경변수 설정 확인을 위해선 CMD창이나 PowerShell을 통해 adb shell을 들어가야 합니다. 어느 디렉토리에서든 들어갈 수 있도록 환경변수를 설정해 주어야 편합니다. JDK 환경변수 설정처럼요. C:\Users\${username}AppData\Local\Android\Sdk\platform-tools 이 경로를 시스템 변수 Path에 추가하시면 됩니다. 환경..
[Android] Task와 Task Affinity에 대한 나의 이해 Task란? Application에서 실행된 Activity들을 담아두는 상자라고 이해했습니다. 차곡차곡 쌓이는 스택의 모습을 하고 있습니다. Task마다 이름이 있는데, 별 다른 설정을 안 했을 시 App의 Package이름을 그대로 따라갑니다. Task Affinity란? Activity가 선호하는 Task의 이름이라고 이해를 했습니다. startActivity를 통해 Activity가 생성되었을 때 ~한 이름을 가진 Task에 올라가고 싶다는거죠. activity 태그가 아닌 application 태그에 taskAffinity 속성을 추가한다면, Application이 실행되었을 때 생성되는 Task의 이름을 정할 수 있습니다. 밑에는 실험 해봤던 코드들입니다. AndroidManifest.xml ..
[Android] Android Dagger2 연습 중 떴던 오류 DI를 위한 Android Dagger2 연습 @ContributesAndroidInjector을 사용법을 익히기 위해 인터넷에 예제를 보고 따라하던 중 빌드 과정에서 다음과 같은 오류가 발생하였습니다. error: [Dagger/MissingBinding] [dagger.android.AndroidInjector.inject(T)] java.util.Map
[Android] Translate Animation과 클릭 이벤트 Translate Animation이 적용된 View의 Click 이벤트 발생 위치가 생각과 달라 포스팅을 합니다. anim/anim_right.xml layout/activity_main.xml ... ... MainActivity.java public class MainActivity extends AppCompatActivity { private ImageView mImg; private Animation rightAnim; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mImg = findViewB..
[Android] Ripple Effect (눌렀을 때 변하는 Background) 클릭 효과 안드로이드 앱을 사용하다 보면 다음과 같은 터치 효과를 자주 볼 수 있습니다 눌린 곳부터 시작해 퍼지면서 색이 변합니다. 깔끔한 효과와 함께 눌렀다는 느낌을 줍니다. 이와 같은 효과를 Ripple Effect라 하며 Android에서 XML을 통해 사용하는 방법을 알려드리겠습니다(SDK 21 이상에서 가능). 1. 경계가 없는 리플(Unbounded Ripple) View의 크기를 벗어나 Ripple 효과가 생깁니다. YouTube에서는 Background Color가 없는 ImageButton들에 사용됩니다. drawable/ripple_unbounded.xml layout/activity_main.xml ... ... 점선으로 표시된 부분이 View의 크기입니다. 크기를 벗어나 Ripple..