본문 바로가기

.땅꼬마.

java코드를 이용하여, Fragment사용하기. 지난번에는, Fragment를 xml을 이용하여 Activity를 구성하는 방법을 알아봤고, 2011/12/04 - [Programming/android/tablet] - xml을 이용해 Fragment이용하기.이번에는, java파일을 이용하여, 화면을 구성하는 방법을 알아봅니다.위 아래 화면이 나누어져 있는 단순한 화면인데요,이를 Fragment2개를 이용하여, 만들어 봅니다.1. android sdk 3.0이상을 생성하여, 안드로이드 프로젝트를 생성하여 줍니다. 2. res에 fragment1.xml을 생성하여 줍니다.[ fragment1.xml ]  xmlns:android="http://schemas.android.com/apk/res/android"  android:orient.. 더보기
xml을 이용해 Fragment이용하기. Activity도 그렇듯, Fragment도 역시, 자바코드에서 생성하는 방법과, xml에서 생성하는 방법이 있습니다. 먼저, xml을 이용하여, Fragment를 추가하는 방법을 알아봅니다. 굉장히 단순한 예제 입니다. 우리가 만들어볼 화면은 아래와 같습니다. 위 아래 화면이 나누어져 있는 단순한 화면인데요, 이를 Fragment2개를 이용하여, 만들어 봅니다. 1. android sdk 3.0이상을 생성하여, 안드로이드 프로젝트를 생성하여 줍니다. 2. res에 fragment1.xml을 생성하여 줍니다. [ fragment1.xml ] 2. res에 fragment2.xml을 생성하여 줍니다. [ fragment2.xml ] 3. 자동 생성된 main.xml의 코드를 바꾸어 줍니다. [ main.x.. 더보기
fragment란? 안드로이드 3.0에서, 새로 도입된 개념으로, 일종의 다른 형태의 미니 액티비티라고 보면 된다. include를 사용하여, 개발을 할경우, view 즉, UI는 포함 할 수 있지만, function은 사용할 수 없습니다. 하지만, Fragment를 사용하면, UI 및, 기능을 동시에 재사용 할 수 있습니다. 기존의 기능을 재사용하려면, ui를 include하더라도, 기능 코드를 따로 삽입해야 했는데요, Fragment를 이용하면, 이 작업을 간단하고 편리하게 할 수 있다는 것입니다. 왜 이런, 기능이 안드로이드 3.0이 들어서서, 나오게 되었냐면, 기존에 사용하였던 어플리케이션을, 3.0에서 재사용할 수 있게 하는 과정이 필요했기 때문입니다. 기존 작은 해상도에 비해서, 큰 타블렛을 채울때는 다른 레이아.. 더보기
카카오톡 처럼 팝업 올라오게 하기. // 이 부분이 바로 화면을 깨우는 부분 되시겠다. // 화면이 잠겨있을 때 보여주기 getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED // 키잠금 해제하기 | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD // 화면 켜기 | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); 필요한 순간 위 코드를 넣어주면, 되겠다. 잠자고, 있는 화면을 깨워주는것, 더보기
꿀팩 만들기 [뷰티팀] 최근 아름다운 피부를 위해 직접 천연팩을 만들어 사용하는 이들이 늘고 있다. 특히 요즘 뷰티 업계에서 가장 이슈가 되고 있는 키워드 중 하나인 ‘꿀’은 요즘처럼 차가워진 날씨에 피부가 푸석하고 탄력이 떨어질 때, 세안 후 보습제를 발라도 속당김이 느껴질 때 부족한 수분과 영양을 피부 깊숙이 공급하는 역할을 한다. 또한 비타민, 아미노산, 미네랄의 함유로 피부 영양 공급에 효과적이며 이 중 비타민C, 비타민B, 칼슘은 강력한 항산화 작용으로 피부노화를 예방할 뿐만 아니라 피부재생을 촉진시킨다. 다양한 효능을 가지고 있는 꿀로 쉽고 간단하게 ‘꿀광 피부’를 만들어 보자. ◆ ‘귀차니스트’를 위한 레몬 꿀팩 만들기 직접 천연 팩을 만들어 사용하는 것은 번거롭고 귀찮다는 생각에 많은 이들이 실천에 옮.. 더보기
안드로이드 단말기 MacAddress 가져오기. { 홈화면 } > { 하드웨어키 메뉴 클릭 } > { 설정 } > { 상태 } 에 들어가면, { Wi-Fi MAC주소 }가 존재한다. 단말기 사용자에 대한 내용이다. 코드는 아님, 더보기
안드로이드 단말기 버전 알아오기 현재 단말기의 버전을 알아오고 싶다면, 다음의 코드를 이용하면 된다. 그리고, 아래와 같이 상황에 맞춰서 대처하여 보자. OS별 코드 버전 넘버는 전의 포스트 참조. (2011/11/17 - [Programming/android] - Android의 역사.) int version = android.os.Build.VERSION.SDK_INT; switch (version) { case 2: Log.d("VERSION", "? 1.1"); break; case 3: Log.d("VERSION", "CUPCAKE 1.5"); break; case 4: Log.d("VERSION", "DONUT 1.6"); break; case 5: Log.d("VERSION", "ECLAIR 2.0"); break; cas.. 더보기
Android의 역사. 안드로이드의 역사? 랄 것도 조금은 어색하지만, 그동안 버전 및 특징 그리고, 히스토리 들을 알아보는 시간을 가져볼까요, Android Version 안드로이드는 스펠링 순으로 먹는 것을 컨셉으로 하여 코드 네임을 짓고 있죠, 나름 맞추는 재미가 쏠쏠하다는… 안드로이드 버전에 대해서 자세히 알고 싶다면, 개발자 사이트가 제일 좋겠죠, 하기 사이트 참조 바랍니다. http://developer.android.com/sdk/index.html 그래도 간단하게 정리. Android Version RELEASE DATE CODENAME API Level FEATURE 1.1 February 2009 2 1.5 April 2009 Cupcake 3 1.6 September 2009 Donut 4 2.0 Octob.. 더보기
안드로이드란? 안드로이드 개발을 업으로 삼고 계속 일하고 있는 시점에서, 이제서야 Android가 무엇인가를 생각한다는게 우습다. 하지만, 난 아직 안드로이드를 너무 모르기에, 정리를 차근차근 해 나가고 있다. 오늘도 역시나, 안드로이드란? 사전에서 찾아보면 뜻은 다음과 같습니다. android – n. a robot with a human appearance. 사람 형상을 한 로봇. 뭔가 난해합니다. 그렇다면, 실제 안드로이드는 무엇일까요? 안드로이드는 구글이 내놓은 리눅스(Ubuntu) 기반의, 모바일을 타겟으로한 운영체제 입니다.(요즘에는, 모바일을 벗어나 다양한 가전기기에도 안드로이드가 탑재되고 있지요,) 2005년 구글은 모바일 사업의 일환으로, Android를 인수했고, 작업을 시작했습니다. 구글의 서비스가.. 더보기
소수점 올림 자바에서, 소수점 자르기 사용. 반올림을 하는 것이 아니라, 그냥 자르고 싶을 경우 사용한다. * 소수점 올리기. numberObj는 잘라줄 변수를 넣어준다. private String roundInSecond(Double numberObj){ return String.format("%.2f", numberObj); } 자바의 String.format을 사용하면, 깔끔하고 쉽게 코드를 사용 할 수 있기에, 공부가 필요하다. * 여기서 응용 소수점 셋째자리에서 자르고 싶다면? 다음과 같이 쓰면 되겠다. 적절히 응용해서 사용하자. 물론, String.format도 공부하는 시간을 가집시다. private String roundInSecond(Double numberObj){ return String.form.. 더보기
볼륨키로 미디어 볼륨만 조정가능하게 하기 내 어플리케이션 안에서는, 볼륨키로 전화 음량을 조정하는 것이 아닌, 미디어 볼륨만 조정 가능하도록 하자. @Override public boolean onKeyDown(int keyCode, KeyEvent event) { AudioManager audio = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE); switch (keyCode) { case KeyEvent.KEYCODE_VOLUME_UP: audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_RAISE,AudioManager.FLAG_SHOW_UI); return true; case KeyEvent.KEYCODE.. 더보기
안드로이드 키보드 보이기, 숨기기 특정 동작을 했을 때, 소프트 키보드를 보여주고 싶을때에 사용한다. 키보드를 제어하려면 InputMethodManager객체를 사용한다. InputMethodManager는 "android.view.inputmethod"에 존재한다. 이 객체는 activity에서, getSystemService로 구할 수 있으며, 변수는 Context.INPUT_METHOD_SERVICE로 구하여 오면 된다. 키보드를 보여줄때는, public boolean showSoftInput (View view, int flags, ResultReceiver resultReceiver) 를 사용하고, 키보드를 가릴때는, public boolean hideSoftInputFromWindow (IBinder windowToken, i.. 더보기
디렉토리 지우기 자바의 File에서 디렉토리를 지우게 될경우, 하위 디렉토리가 있다면, 지워지게 되지 않는다. 그래서, 디렉토리를 지워줄때엔 재귀호출을 이용하여, 지워주어야 한다. public boolean deleteFile(String filePath){ File file = new File(filePath); String[] subDirs = null; String path = filePath; if(file.isDirectory()){ subDirs = file.list(); int subDirsLenght = subDirs.length; for(int i=0; i 더보기
현재실행중인 액티비티 구하기 현재 액티비티가 실행 중이라면, true를 반환하고, 실행중이 아니라면, false를 반환합니다. private boolean isActivityTop(){ ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); List info; info = activityManager.getRunningTasks(1); if(info.get(0).topActivity.getClassName().equals(PhoneStateReceiverTestActivity.this.getClass().getName())) { return true; } else { return false; } } info = activityMan.. 더보기
자바에서 랜덤숫자 만들기 - 0 < x < 1사이의 실수 만들기 Double d = Math.random(); -2147483648 < x < 214743647 ( Integer.MIN_VALUE < x < Integer.MAX_VALUE ) Random random = new Random(); Int x = random.nextInt(); .. nextBoolean(), nextFloat(), nextDouble 등 다양함. 0 더보기
티스토어 부분 유료화 결제 검수 방법 변경 인앱 관련. 티스토어 결제 검수방법이 변경되었다. 괜히, 승인거부만 당한… "부분 유료화API"에는 그에 대한 내용이 나와있지 않다. 어쩌라는 거지…? http://dev.tstore.co.kr/devpoc/notice/listNotice.omp 의 179번 글보면 됨. 검수 방법에 대한 정보는 다음과 같다. 3-10. 부분유료화 API가 정상적으로 적용되었는가? – 최신 버전의 API가 적용되어야 함 – 부분유료화 API 외 자체 결제 기능 제공불가 (단, 실물거래는 허용) – 등록된 부분유료화 상품 정보와 Application에 구현된 메뉴 정보가 일치하여야 함 – 등록된 과금액과 실제 발생한 과금 로그의 정보가 일치하여야 함 – 부분유료화 결제(부분 유료화 API에서 제공화면) 젂 금액 안내 및 고.. 더보기
String & StringBuilder & StringBuffer String : immutable StringBuffer & StringBuilder : mutable Immutable mutable 불변의 변하기 쉬운 더보기
Volatile 에 대한 공부. volatile에 대한 단상, 이걸 꼭 알아야 하는가? 자바 개발자로서 모를 필요는 없겠지? 그렇다면, 공부해 보는게 어떨까? Wiki에서의 Volatile… http://en.wikipedia.org/wiki/Volatile In computer science: Volatile variables, variables that can be changed by an external process Volatile memory, memory that lasts only while the power is on (and thus would be lost after a restart) 무슨 말인지 모르겠다, 네이버 사전에서의 Volatile… http://endic.naver.com/enkrEntry.nhn?entr.. 더보기
Blank Final 이란? 자바에서 변수를 생성할때, 다음과 같이 생성하지요, private String name; 만약, 변수가 바뀌는걸 원하지 않는다면, 선언부에 final을 적게 되지요, private final String name; 여기서, 용어가 하나 나오는데, Blank Final이라는 것입니다. final 변수를 선언과 동시에 초기화를 해주는 것이 아닌, 생성자에서 초기화를 해주는 것을 말합니다. 즉, private final String name = "멍보"를 하는 대신, 생성자에서 초기화 시켜주는 겁니다. 예로는 다음과 같겠지요, class BlankFinal { private final String name; public BlankFinal(String name){ this.name = name; } } 다음 .. 더보기
sd카드에 database 저장하기. sqlopenhelper를 사용해 데이터베이스를 생성하게될 경우에, 보통 "data/ data / 패키지명 / db / 데이터베이스파일"로 생성이 되게 된다. 이 경로는 내가 원하는 곳으로 바꿀 수는 없을까? 이는 다음과 같이 하면 된다. 생성자에서 filePath만 새로 잡아주면 됩니다. 예 > public static final String FILE_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + SQLITE_FILE; public DBOpenHelper(Context context){ super(context, FILE_PATH, null, DB_VERSION); } 자동 생성되는, onCrea.. 더보기
[VideoView] 로컬 비디오파일 설정 videoView.setVideoURI(Uri.parse("android.resource://패키지명/" + R.raw.리소스아이디)); 더보기
프랭클린 플래너 속지 이분의, 플래너 속지를 잘 사용하고 있다. http://blog.moneta.co.kr/blog.screen?blogId=healhunter&listType=1&folderType=&category=1052784&from=&to=&logCount=3 여백정보는 다음과 같다. [ 20.5, 17.5 양면인쇄 ] 더보기
change String to Document [ change java.lang.String to org.w3c.dom.Document ] String을 Document로 바꾸어 줍니다. import java.io.StringReader; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.xml.sax.InputSource; String xmlString = "..."; try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.n.. 더보기
screen on / off 안드로이드 화면 꺼짐 방지 (Screen on) 1. layout에서, android:keepScreenOn="true"의 속성을 준다. 사용예 : 2. 자바 코드에서, 다음과 같은 코드를 추가한다. 사용예 : getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 3. View에서 아무곳에서나 다음 메소드를 호출한다. setKeepScreenOn(true); 안드로이드 화면 꺼짐 요청 (Screen off) 1. 코드에서 다음을 요청합니다. PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); wl = pm.newWakeLock(PowerManager.PA.. 더보기
안드로이드 좌우 변환시 대처사항 안드로이드는 좌우 전환이 일어날때마다, onCreate가 다시 일어나게 된다. 상황에 따라서, 이는 안좋을 수 있기 때문에 막는 경우도 있다. 좌우 전환에 따라서, Create를 안하게 하기 위해서는, AndroidManifest.xml의 해당액티비티에, 위 예제와 같이 android:configChanges="orientation|keyboardHidden" 써주면 된다. 하지만, 그렇다고 좌우 전환시마다 리소스가 바뀌어야 하는경우가 있다. 이럴때는, Activity의 onConfigurationChanged(Configuration newConfig)를 오버라이드 하여 사용하여 주면 된다. 이는 화면의 상태가, landscape portrait로 바뀔때 호출이 되며, android:configChan.. 더보기
구글 애드센스 승인거절 , 친절한 구글씨 ! 일주일전 구글 애드센스 계정을 신청했습니다. 안드로이드 마켓 수익금을 받기 위해서는, 애드센스에 가입해야 하더라구요, 물론, 전 가입 받을 돈이 없지만... 으헝... 여하튼, 신청하려고, 신청을 하니, 승인거절이 나더라구요. 회사 다른분이랑 주소가 일치해서였습니다. 가입 주소가 같아도 승인거절이 날수가 있다는 것... 역시 다른 정보가 다른 사람과 같아도 승인 거절이 날 수 있습니다. 생각보다 까다롭죠, -__- 그래서 구글(adsense-ko@google.com)에 메일을 보냈습니다~ 대부분의 글들이 구글에서 굉장히 불친절하게 대답을 해주신다는데, 저같은 경우에는... 답장을 친절하게 해주시더라구요. 이메일을 보내 주셔서 감사합니다. 애드센스는 정책상 한 개인이 여러 계정을 갖는 것을 불허 하기 때문.. 더보기
순수 문자만 반환하는 정규식 함수 private static final Pattern NUMBER_PATTERN = Pattern.compile("([^\\w])"); /** * 특수문자를 제거하고 순수캐릭터만 반환. * @param orgString * @return pureString */ public static String getPureNumber(String orgString){ StringBuffer destStringBuffer = new StringBuffer(); Matcher m = NUMBER_PATTERN.matcher(orgString); while(m.find()){ m.appendReplacement(destStringBuffer, ""); } m.appendTail(destStringBuffer); retur.. 더보기
순수 숫자만 표현 하는 정규식 private static final Pattern NON_CHARACTER_PATTERN = Pattern.compile("([^\\d])"); /** * 숫자이외를 제거하고 순수숫자만 표현합니다. * @param orgString * @return pureString */ public static String getPureString(String orgString){ StringBuffer destStringBuffer = new StringBuffer(); Matcher m = NON_CHARACTER_PATTERN.matcher(orgString); while(m.find()){ m.appendReplacement(destStringBuffer, ""); } m.appendTail(destStri.. 더보기
sd카드 사용가능 공간 알아오기 Activity 안에서, 다음 코드를 써주면 됩니다. StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath()); long space = stat.getBlockSize() * stat.getAvailableBlocks(); 더보기
color를 xml로 사용하기. 1. 먼저 res > values 폴더안에 colors.xml파일을 생성해줍니다. 2. colors.xml에 색을 넣어줍니다. #ffffff .... 3. 사용합니다. 사용법 : xml 파일에서는, "@color/white" java 파일에서는, view.setBackgroundColor(getResources().getColor(R.color.red)); 자바에서, 그냥 view.setBackgroundColor(R.color.red); 요런식으로 사용하시게 되면, 참조를 못읽게 되어서, 원하시는 색상 출력하실 수 없습니다. 위의 방법을 사용하셔야 합니다. 추가 자세한 사항은 역시나, api를 참조합시다. http://developer.android.com/guide/topics/resources/mo.. 더보기