본문 바로가기

Programming/android

가로모드에서 editText 키보드가 화면을 덮을때 ! 위의 글을 넣어주면 됩니다. 더보기
유튜브 연결 인텐트 분홍글자부분의 아이디만 바꾸어 주면 됩니다. Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("vnd.youtube:youTubeId")); startActivity(i); 더보기
EditText에 화폐단위(,) 붙이기.  목적 : 에딧텍스트에 숫자가 바뀔때마다, 3자리 숫자 단위로 콤마(,)를 찍어준다. XML파일은 다음과 같다. 별다를 것 없는... 자바 파일은 다음과 같다. // 세자리로 끊어서 쉼표 보여주고, 소숫점 셋째짜리까지 보여준다. DecimalFormat df = new DecimalFormat("###,###.####"); // 값 셋팅시, StackOverFlow를 막기 위해서, 바뀐 변수를 저장해준다. String result=""; // 숫자가 바뀔때마다, 새로 셋팅을 해주어야 하므로, ChangeListener를 단다. meterEditText.addTextChangedListener(new TextWatcher(){ @Override public void afterTextChanged(Edit.. 더보기
텍스트 마퀴효과 안드로이드에서 텍스트가 길면, 잘려서 안보이는 경우가 있다. 이런경우, 글자가 흘러가는 효과를 주어 보여주게 하는 방법이 있다. main.xml 유의해서 봐야할 것은, android:focusable="true" android:singleLine="true" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" android:scrollHorizontally="true" android:focusableInTouchMode="true" 이 속성들을 주어야 한다는 것이고, java파일에서, setSelected(true)를 적용해 주어야 한다는 것이다. MarqueeTest.java public class MarqueeTest ex.. 더보기
전화걸기 인텐트 다음의 인텐트를 사용하여 주면 된다. Intent mIntent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:01012345678")); startActivity(mIntent); 더보기
SurfaceView 사용방법 SurfaceView 사용법은 1. SurfaceView를 상속 받고, 2. SurfaceHolder.Callback을 구현하여준 후에, 3. SurfaceView의 그리기 작업을 핸들링 해줄, Thread를 구현해주면 됩니다. 예제를 보십시다. package kr.chapter.surfaceview; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.util.AttributeSet; import android.view.SurfaceHolder; import android.view.SurfaceView; /** * SurfaceView를 이용하기 위해서 and.. 더보기
getWindow(),requestFeature(int featureId) 종류 윈도우에 기능을 요청하는 방법입니다. setContentView이전에 호출을 해주어야 합니다. 대표적으로 많이 쓰이는, 속성과 설명을 알아 봅시다. DEFAULT_FEATURES : 기본기능이다. FEATURE_CUSTOM_TITLE : 커스텀 타이틀 바를 사용한다. FEATURE_INDETERMINATE_PROGRESS : 타이틀 바에 원형의 프로그레스를 표시한다. FEATURE_NO_TITLE : 타이틀 바를 없앤다. FEATURE_PROGRESS : 타이틀 바에 막대 모양 프로그레스를 표시한다. 더욱 자세한 feature의 종류는 개발자 사이트를 참조. http://developer.android.com/reference/android/view/Window.html#requestFeature(int.. 더보기
안드로이드 키보드의 InputType정리 안드로이드 단말은, 에딧텍스트의 상태에 따라, 키보드의 모양이 달라지게 할 수 있지요. 비밀번호를 눌러야 한다면, 숫자키보드가 나오고 뭐, 그런 것말이죠, 이것은 editText의 inputType 속성을 적절히 지정해주면 됩니다. 이 속성에 따라서, 키보드에 표시되는 키의 종류가 달라집니다. 속성은 세가지, Class, Variation, Flag 세가지가 있고, 각 속성은 중복되어 사용가능 합니다. 중복하여 사용하려면, |로 연결하여 사용합니다. Class는 숫자, 문자, 비밀번호 등 입력문자의 종류를 지정합니다. Variation은 Class의 세부적속성이 들어가죠. Flag는 이보다 더 세부적인 속성으로, 대문자 자동변환 여러줄 입력 등의 동작을 수행한다고 합니다. 코드에서 inputType의 속.. 더보기
안드로이드 샘플보기 다운 받은 샘플 이후에 추가로 제공되는 샘플코드. http://code.google.com/p/apps-for-android/ 확인하여 보자. 더보기
android에서 외부(sdcard) db를 열려면? pc에서 만든, sqlite파일을 안드로이드에 삽입하여 사용하고 싶다면, 어떻게 해야할까? SQLiteDatabase의 openDatabase를 사용하면 된다. 예는 다음과 같음. String filePath = getFilesDir().getAbsolutePath() + File.separator + DB_FILE_NAME; SQLiteDatabase sqlite = null; sqlite = SQLiteDatabase.openDatabase(filePath, null, SQLiteDatabase.OPEN_READONLY); Cursor cursor = sqlite.rawQuery("select code_num from category;", null); sqlite.close(); 참조 : 2011/0.. 더보기
예제로 시작하는 안드로이드 개발 예제로 시작하는 안드로이드 개발 책. 온라인 책 및, 소스 안내 등 페이지입니다. http://androidapps.org.ua/ 더보기
안드로이드 버튼 Selector 버튼의 상태에 따라서 버튼의 스타일을 다르게 지정할 수 있다. 이것을 하는 방법은, 1. 자바파일에서 한다. 2. xml에서 한다. 두가지 방법이 있다. 개인적으로는, 두번째 방법이 좀 더 깔끔하고 정리도 잘되는것 같다. 그렇다면, xml에서 처리하는 방법에 대해서 알아보자. 1. res/drawable 폴더에 xml을 생성한다. res/drawable/btn_style.xml color로도 가능하다. 예는 다음과 같습니다. color_back.xml 가능한 상태는 다음과 같다. 적절하게 사용하자. android:state_focused android:state_pressed android:state_enabled 2. 선택하고자 하는 버튼에 배경으로 설정한다. (자바소스에서 지정해도 된다. btn.se.. 더보기
안드로이드 더블 클릭 http://blog.vizpei.kr/94697746 참고참고. 더보기
안드로이드 키보드 옵션 안드로이드는 모바일 프로그래밍이기 때문에, 화면의 제약이 많습니다. 이에 따라서, 화면을 효율적으로 사용하기 위하여, 키보드가 올라왔을경우, 화면을 어떻게 표현할 것인가가 중요한 이슈가 되기도 하죠. 그래서, 안드로이드는 키보드가 화면에 보여질때 어떻게 표현할 것인가에 대해서, 몇가지 가이드라인을 주고 있습니다. 제가 겪은 일중 하나는, 안드로이드 키보드가 올라올시 레이아웃이 재조정되는 현상이 있었습니다. 저는, 키보드가 올라오더라도 레이아웃이 유지되기를 원했습니다. 그래서, 이것을 해결하기 위해, 매니페스트 파일을 조정해 주었습니다. android:windowSoftInputMode="adjustPan" 저는 위의 방법을 썼네요, 네임플레이스와, 옵션은 다음과 같습니다. android:windowSof.. 더보기
안드로이드 상태바 사이즈 구하기 Rect rectgle= new Rect(); Window window= getWindow(); window.getDecorView().getWindowVisibleDisplayFrame(rectgle); int StatusBarHeight= rectgle.top; int contentViewTop= window.findViewById(Window.ID_ANDROID_CONTENT).getTop(); int TitleBarHeight= contentViewTop - StatusBarHeight; Log.i("Size :: ", "StatusBar Height= " + StatusBarHeight + " , TitleBar Height = " + TitleBarHeight); onCreate가 끝난 후에,.. 더보기
안드로이드 기본 캘린더 접근하기 컨텐트 프로바이더를 이용하여 접근한다. content://com.android.calendar/calendars/ content://calendar/calendars 더보기
[android] parseSdkContent 오류. 안드로이드 2.2에서 2.3으로 업그레이드를 하고나니 parseSdkContent오류가 생겼다. 아구, 잘못한게 없는데 왜그럴까 했드만, 왜그런지는 모르겠지만, 이럴경우에는, User 디렉토리의 .android 폴더를 지워주면 깔끔하게 해결된다. 잊지말자~ 더보기
Intent로 웹브라우저 열기 인텐트를 이용하여 웹브라우저를 여는 것은 굉장히 간단하다. 다음과 같이 3줄이면, 된다능... +_+ private void openWebBrowser(){ Uri uri = Uri.parse(${urlText}); // 1 Intent intent = new Intent(Intent.ACTION_VIEW, uri); // 2 startActivity(intent); // 3 } 1 : Uri를 불러온 후, 텍스트를 Uri로 변환한다. 2 : 인텐트를 생성해 VIEW_ACTION 액션을 추가하고, 방금 만든 Uri 클래스를 보낸다. 3 : 인텐트를 호출한다. 음... 이렇게 되면... 웹브라우저가 열리는 동시에 프로그램이 정지가 되는데, 이렇게 하는 것 말고 프로그램과 동시에 보고 싶다면, WebView.. 더보기
TableLayout 의 속성 collapseColumns : 숨길 열들의 번호(0기반)들을 쉼표로 분리하여 나열한 것. shrinkColumns : 줄일 수 있는 열들의 번호들을 쉼표로 분리하여 나열한 것. stretchColumns : 늘릴 수 있는 열들의 번호들을 쉼표로 분리하여 나열한 것. TableRow의 속성들. layout_columns : 이 뷰가 표시될 열번호. layout_span : 이 뷰가 차지할 열들의 갯수. TableLayout은 유용한 것 같아서 정리해 둔다. +_+ 더보기