본문 바로가기

[Android] 여러개 Intent를 묶어서 보내기. 앱을 만들 때, 제조사 또는 버전의 차이로 인해 인텐트 호출후 원하는 리스트가 표시되지 않을 때가 있다. 특히 카메라와 갤러리의 경우가 그렇다. 대부분의 개발자들은 호출 한번으로 카메라와 갤러리를 모두 보여주고 싶은데, 검색능력부족(?)으로 인해, 결국 따로 만드는 경우가 태반이다. 카메라와 갤러리를 동시에 호출할 수 있는 소스를 첨부한다. 먼저 인텐트들을 담을 리스트와와 카메라호출을 위한 인텐트, 그리고 패키지 검색을 위한 패키지 매니저, 마지막으로 카메라 패키지 정보를 담을 변수를 선언한다. final List cameraIntents = new ArrayList(); final Intent captureIntent = new Intent(android.provider.MediaStore.ACTION.. 더보기
[Android] Android에서 "Unknown error merging manifest" Android ADT 19(맞나??ㅎㅎ) 이상부터 Manifest.xml Merge 기능이 추가되었다. 메인이 되는 프로젝트의 project.properties 파일에 manifestmerger.enabled=true 를 추가해주면 된다. 하지만!!! Manifest의 내용이 중복될 경우, 중복되었다는 메시지를 보여주지만, 가끔 말도안되는 에러를 보여줄 때가 있다. 그중 하나가... "Unknown error merging manifest" 라는 메시지 인데..... 정말 엄청난 삽질을하다가.. 어느 블로거에 의해서 문제를 해결하게 되었다. 메인 프로젝트의 android : targetSdkVersion이 라이브러리 프로젝트의 targetSdkVersion 보다 낮으면 오류가 표시되므로 라이브러리의 ta.. 더보기
[Android] XML drawable 을 코드로 만들기(xml selector를 java code로 변환) StateListDrawable states = new StateListDrawable(); states.addState(new int[] {android.R.attr.state_pressed}, getResources().getDrawable(R.drawable.pressed)); states.addState(new int[] {android.R.attr.state_focused}, getResources().getDrawable(R.drawable.focused)); states.addState(new int[] { }, getResources().getDrawable(R.drawable.normal)); imageView.setImageDrawable(states); //YOUR IMAGE HERE.. 더보기
[Android] WebView 에서 getGeoLocation이 동작하지 않을 때( getGeoLocation is not working on Android Webview) onGeolocationPermissionsShowPrompt 웹뷰를 사용하다가 보면 getGeoLocation을 사용할때가 있다. 아이폰에서는 전혀 문제 없이 동작하는데 안드로이드! 이놈에서만 위치정보를 받지 못한다. 인터넷을 무쟈게 검색후.. 해답 발견. WebChromeClient의 아래 Method를 overriding하여 구성해줘야하는데 코드는 다음과 같다. @Override public void onGeolocationPermissionsShowPrompt(String origin, Callback callback) { final String myOrigin = origin; final GeolocationPermissions.Callback myCallback = callback; CommonDialogs dialog = new CommonDialogs.. 더보기
[Android] Fragment Width(넓이) mRootLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { mFragmentWidth = getView().getWidth(); mFragmentHeight = getView().getHeight(); if (mFragmentWidth > 0) { ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, mFragmentWidth); mMapView.setLayoutParams(param.. 더보기
[Android] Uri로 Bitmap 추출 Bitmap bitmap = null; try { bitmap = Images.Media.getBitmap(getActivity().getContentResolver(), uri); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } 더보기
[Android] 다이얼로그(Dialog) 닫기 방지. 닫히지 않게 하기. 다이얼로그로 로그인 화면이나, 비밀번호 입력창 등을 만들기도 한다. 가장 많이 사용 하는 것이 AlertDialog.Builder 를 사용할텐데, 기존에 제공하는 리스너들을 Overriding 해서 사용할 경우 Ok, Cancel 버튼 클릭시 원하지 않게 창이 닫기게 된다. 아래의 방지코드를 넣게 되면 창이 닫기지 않게 된다. dialog.setOnShowListener(new DialogInterface.OnShowListener() { @Override public void onShow(DialogInterface arg0) { Button positiveButton = ( (AlertDialog) arg0 ).getButton(AlertDialog.BUTTON_POSITIVE); //Or Alert.. 더보기
[Android] R.java 가끔 생성안될때 대부분 개발자들은 이클립스를 사용할때, Build Automatically 옵션을 꺼놓고 사용할 것이다.(나만그런가??)아무튼...언제부터인지는 모르겠는데 수동으로 빌드를 할 경우 반응이 없는 경우가 있는데Build Automatically를 체크하고 다시 시도해보길 바란다.그러면 간단히 해결될 수도 있다..(물론...경우에 따라서 안될수도 있음!!^^;;) 더보기
[Android] 안드로이드 SDK 업데이트 이후 R.java 생성 오류 안드로이드 SDK Tools가 업데이트(Ver.22 이상) 된 이후로 R.java 생성하는데 오류가 생겼다. 이는 Android SDK Build-tools를 설치하면 간단히 해결된다. 출처 : ALPHAFACTORY 더보기
[Android] GCM Test URL 일단..내가 필요하기때문에 간단하게 만들어 놨지만, 기능들은 점점 추가될 예정입니다. ( 지금은 하나만 저장되지만, 추후에,, 리스트 저장등..ㅎ) 링크 : GCM 테스트 더보기