본문 바로가기

나의 플랫폼

[Android] ImageView 사이즈 ViewTreeObserver vto = image1.getViewTreeObserver(); vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { public boolean onPreDraw() { image1.getViewTreeObserver().removeOnPreDrawListener(this); Log.e(getClass().getName(),"imageView size : Height: " + image1.getMeasuredHeight() + " Width: " + image1.getMeasuredWidth()); return true; } }); 위 방법을 통하면 ImageVIew 사이즈를 구할수있다. 더보기
[Android] 현재 실행중인 App 체크 ActivityManager am = (ActivityManager) context.getSystemService(Activity.ACTIVITY_SERVICE); String packageName = ""; if(Build.VERSION.SDK_INT > 20){ packageName = am.getRunningAppProcesses().get(0).processName; } else{ packageName = am.getRunningTasks(1).get(0).topActivity.getPackageName(); } 위 함수를 통하여 현재 실행중인 App의 PackageName을 받을 수 있다. 자기 App과 PackageName이 같은 경우, 현재 자기 App이 샐행되고 있다고 판단하면 된다. ht.. 더보기
[Android] Textview Copy - Clipboardmanager txtView.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { ClipboardManager cm = (ClipboardManager) mContext.getSystemService(Context.CLIPBOARD_SERVICE); cm.setPrimaryClip(ClipData.newPlainText("text", ((TextView) v).getText())); return false; } });위 소스를 이용하면 TextView를 롱클릭 했을 시, 클립보드로 텍스트가 저장이 된다.이후, EditText 에서 롱클릭을 할 경우 붙여넣기 버튼이 자동으로 생성 되며,카피 했던 텍.. 더보기
꼭!!! 다이얼로그를 onDestroy에서 dismiss 시키는 버릇을 만들자~ 제목 대로 안드로이드에서 다이얼로그를 만든 후, dismiss를 시키지 않고 Activity를 종료한 후,WindowManager를 이용하여 addView를 추가 시키고자 할때 아래와 같은 에러 메세지를 보이게 된다. 참고:http://www.jjoe64.com/2011/06/how-to-fix-windowmanager.html E/WindowManager( 1374): Activity com.jjoe64.example.MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@405446f8 that was originally added hereE/WindowManager( 1374): android.view.. 더보기
AsyncTask를 사용하는데 동기화가 안되는 현상. 참고 : http://trend21c.tistory.com/1715 위 사이트를 들어가면 제대로 정의 되어 있다. 삽질중에 중요한 안드로이드의 API변화를 발견하게 되었습니다. When first introduced, AsyncTasks were executed serially on a single background thread. Starting with DONUT, this was changed to a pool of threads allowing multiple tasks to operate in parallel. After HONEYCOMB, it is planned to change this back to a single thread to avoid common application errors.. 더보기
[안드로이드] com.android.dex.DexIndexOverflowException 안드로이드를 개발하다 보면, 많은 오픈 라이센스 라이브러리를 사용하게 됩니다.문제점은 이 라이브러리에 기능적으로 문제가 없더라도 Android Studio에서 빌드를 하게 되면 아래와 같은 에러가 뜨면서 빌드가 되지 않습니다.com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536 이유는 구글에서 메소드 갯수에 제한을 두고 있기 때문에 그 갯수를 넘으면 빌드가 되지 않습니다. 그래서 위와 같은 에러가 발생했을 때는 라이브러리를 줄일수 있을 만큼 줄이는게 해결 책입니다. 아마 가장 많이 발생하는 부분은 google service를 사용할 때 입니다.build.gradle 파일에 google service를 추가할때 아래와 .. 더보기
[Android Studio] error occurred during initialization of vm Android Studio를 설치하고! 이제 개발해보자 하는 순간 Gradle 관련하여 Heap 메모리가 부족하다는 에러가 발생하여 불능 상태가 됩니다. VM을 만들수 없다는 건데요. Error:Unable to start the daemon process. This problem might be caused by incorrect configuration of the daemon. For example, an unrecognized jvm option is used. Please refer to the user guide chapter on the daemon at http://gradle.org/docs/2.2.1/userguide/gradle_daemon.html Please read the fol.. 더보기
git 관련 명령어 [ repo reset ]repo forall -c git reset --hard TAG [branch 확인 방법]cat .git/config [ CR 제거 명령어. ]find ! \( -path ./.git -prune \) -type f -exec sed -i -e 's/^M//g' {} \; find ./ -name '*.java' | xargs -n 1 sed -i 's/\r//g' git pullgit reset --hard [commit id]git statusgit add .git commit -m "메세지" git commit --amend repo upload . [Rebase 방법]1. base로 바꿀 permalink로 이동.2. pull 버튼을 선택 하고, 나온 값을 복사.3. an.. 더보기