android2013. 5. 28. 14:36

1. 키보드 감추기

EditText editText = (EditText) findViewById(R.id.myEdit);
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);

2. 키보드 보여주기
EditText editText = (EditText) findViewById(R.id.myEdit);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_FORCED);

위 코드로 안보이는 경우 아래코드도 시도해보세요
- imm.showSoftInputFromInputMethod (editText .getApplicationWindowToken(),InputMethodManager.SHOW_FORCED);

onCreate등에서 제대로 동작하지 않는다면 
Handler로 post를 해서 위 코드를 실행시켜보세요.

3. 키보드 토글 - 위 두가지 방법으로 안되는 경우 다음과 같은 코드로 동작하는 경우가 있습니다.
imm.toggleSoftInputFromWindow(editText.getApplicationWindowToken(),  InputMethodManager.SHOW_FORCED, 0); 

4. 액티비티 시작시 자동으로 키보드 보여주기
AndroidManifest.xml의 activity 태그의 속성에 android:windowSoftInputMode="stateVisible" 혹은 "stateAlwaysVisible"삽입

5. 액티비티 시작시 자동으로 키보드 보여주지 않기
AndroidManifest.xml의 activity 태그의 속성에 android:windowSoftInputMode="stateHidden" 혹은 "stateAlwaysHidden" 삽입

6. 에디트 텍스트 선택해도 키보드 안뜨게 하기
EditText xml 속성에서 inputType 을 0으로 주면 안뜹니다.

 

출처 : http://www.androidpub.com/1104990 

Posted by 광포한곰돌이
android2013. 5. 22. 17:49

기존 구성방법은 

res/layout 폴더안에 left.xml 등을 작성하여 자바 파일에서  setContentView(R.layout.left) 이런식으로 구성하였습니다.

만약 가로와 세로에 방향에 따라 자신만의 다른 모양의 layout을 주고 싶을 경우 아래와 같이 작성하시면 됩니다.

res/layout-port, res/layout-land  폴더를 두개 만드신후 동일한 이름으 파일 left.xml 을 원하는 모양대로 구성하여 작성을 합니다.

그런다음 자바 파일에서는 기존과 동일하게 setContentView(R.layout.left)라고 작성을 합니다.

그리하면 가로일경우는 res/layout-land/left.xml 파일이 적용되며 세로로 전환하게 되면 res/layout-port/left.xml 파일이 적용이 됩니다.

이렇게 하실경우 manifest 파일에서 해당클래스의 orientation을 고정하지 말아야 합니다.

Posted by 광포한곰돌이
android2013. 5. 22. 17:43

픽셀(pixel), 디피(dp) 계산법 입니다. 주로 좌표 계산할 때나 코드상에서 직접 View의 width, height를 사용해야 하는 경우에 유용하게 사용 하실 수 있습니다.


1) dp -> pixel

2) pixel -> dp 


 

 1) pixel = dp * (density / 160) 

 2) 
dp = px * (160 / density)



Posted by 광포한곰돌이
android2013. 5. 22. 17:41

안드로이드에서 모든 해상도에 맞는 개발이 가능한 일 일까요? 정답은 "현실적으로 불가능하다" 입니다. 현재 비공식적으로 안드로이드 단말은 수백, 수천개 이상이 출시 됬거나 출시중에 있다고 합니다. 이렇게 많은 단말들이 출시가 되었지만 저마다 개성있는 부품과 디자인으로 시장에 진출 하고 있습니다. 비슷한 제품도 찾아 보기 힘든 실정이죠. 마찬가지로 해상도와 Density 값도 역시 기기마다 천차만별로 다양화 되고 있고 앞으로도 단말에 따른 파편화는 더 심해 질거라 생각 합니다.


이러한 문제에 대해서 구글은 모든 해상도마다 각각의 레이아웃 작업을 하는 것을 지향하라고 말하고 있지만 현실적으로 그렇게 개발하기란 거의 불가능 하다고 생각 합니다.


그렇기 때문에 타겟 단말을 설정하여 개발 하거나 최대한 모든 단말에 적용 될 수 있게 고려하여 레이아웃 작업을 진행하는게 현실적인 방안 입니다.



[모든 해상도 맞추는 법]

1) 해상도별 폴더를 만들어라.

-> 안드로이드 단말만 수천개 이상, 현실적으로 불가능.

-> 타겟 단말을 지정해서 개발 해라. 


[모든 해상도를 최대한 고려한 작업 방법]

1) match_parent를 잘 활용 하라.

2) weight를 사용하라.

3) RelativeLayout을 사용 하라.

-> align, parent, below, above 등의 속성를 사용하라.

4) dp값을 활용하라.

5) 나인패치를 활용하라.

6) 통이미지라면 큰 이미지를 사용해서 작은 화면에 적용 하라.

7) Scrollview를 잘 활용하라

Posted by 광포한곰돌이
android2013. 5. 22. 14:18

필요한 부분에 아래와 같이 코드를 넣어 주면 된다.



  // 이 부분이 바로 화면을 깨우는 부분 되시겠다.

        // 화면이 잠겨있을 때 보여주기

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED

        // 키잠금 해제하기

        | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD

        // 화면 켜기

        | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

Posted by 광포한곰돌이
android2013. 4. 5. 16:09

제스처

제스처는 사용자가 제공된 스크린 객체를 조작하여 앱과 상호작용하는 방법입니다. 아래는 안드로이드에서 쓸 수 있는 핵심 제스처 표입니다.


터치





선택한 항목의 기본 기능을 작동합니다.

조작법
눌렀다, 뗍니다


롱 프레스




데이터 선택 모드로 들어갑니다. 하나 이상의 항목을 선택할 수 있고 컨텍스트 액션 바를 통해 데이터를 조작할 수 있습니다. 컨텍스트 메뉴를 보여주기 위해서는 롱 프레스를 쓰지 마세요.

조작법
누르고, 기다렸다, 뗍니다


스와이프




넘친 컨텐츠를 스크롤하거나 같은 계층의 뷰 사이를 이동합니다.

조작법
누르고, 움직이고, 뗍니다
드래그




뷰 내의 데이터를 고쳐 배열하거나 컨테이너로 데이터를 옮깁니다. (예: 홈 화면의 폴더)

조작법
롱 프레스 후, 움직이고, 뗍니다


더블 터치




컨텐츠를 확대합니다. 또 텍스트 선택을 위한 부차 제스처로도 사용합니다.

조작법
짧게 이어 두번 누릅니다


핀치 오픈




컨텐츠를 확대합니다.

조작법
두 손가락으로 누르고, 밖으로 벌리고, 뗍니다

핀치 클로즈




컨텐츠를 축소합니다.

조작법
두 손가락으로 누르고, 안으로 좁히고, 뗍니다

http://fishpoint.tistory.com/747 여기서 퍼옴

Posted by 광포한곰돌이