본문 바로가기
728x90

Programing/Android / Java195

안드로이드 디바이스 해상도 구하기 (가로/세로 사이즈) DisplayMetrics displayMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); int deviceWidth = displayMetrics.widthPixels; int deviceHeight =displayMetrics.heightPixels; Log.v(TAG, "Width = " + deviceWidth + " / Hight = " + deviceHeight); 2014. 1. 2.
안드로이드 에디트박스 길이 제한 (입력 제한) XML에서 maxLength를 설정해 주면 된다.참 간단하다..... 머리 좋은 놈들.......ㅋㅋㅋ1로 설정하게 되면, 한글 / 영어 / 특수문제 할거 없이 한 글자로 제한이 된다. android:singleLine="true"그리고 singleLine을 true로 함께 설정하게 되면, 한줄로만 글을 쓰면서 제한하게 되니,한줄의 글씨를 제한하는 역할이라고 봐도 무방하지 않을까 싶다;;;;;ㅋ 2014. 1. 1.
안드로이드 커스텀 리스트뷰에서 체크박스 스크롤 시 문제점 해결 커스텀 리스트뷰에서 체크박스를 사용하다 보면,스크롤 하는 경우 설정이 초기화가 되어 버리는 황당한 일을 경험하게 됩니다.어떻게 해야 할지도 모르겠고, 짜증은 나고. 결론부터 말씀드리자면, 원인과 해결책은 정말 간단합니다. 커스텀 리스트뷰를 사용하는 경우 getView()라는 걸 하나씩 만들어서 사용하게 되는데요.스크롤 하는 경우 getView()가 호출되게 되고, 이때 설정값이 초기화가 되는 것입니다. 이제 원인을 알았으니, 해결책을 말씀드리면,getView()에 이전에 설정 된 값을 기억하고 있다가, 조건문을 달아서 처리해 주는 것입니다. if(mContactListActivity.mIsSelected[position].equals("true")) mContactListInfo.setListSelect.. 2014. 1. 1.
안드로이드 다른 클래스의 함수나 값 불러오기 안드로이드나 자바를 하다보면, 다른 클래스에 존재하는 값을 사용해야 하는 경우가 종종 있습니다.이럴 때 잘못 사용을 하게 되면, NullPointerException이 발생하는 문제가 생기게 되는데요.아래와 같은 방법으로 해결 하시면 됩니다. 반드시!! 아셔야 하는 내용은 사용하고자 하는 함수나 변수는 public으로 설정이 되어 있어야 합니다. public class Test extends Application { public String mTest; public void AAA(){ } } public class A extends Activity { private Test test; @Override public void onCreate(Bundle savedInstanceState) { test =.. 2014. 1. 1.
안드로이드 스크린 화면 고정하기 1. AndroidManifest.xml activity 속성중 screenOrientation을 다음과 같이 지정해준다. //화면을 세로로 유지 android:label="@string/app_name" android:screenOrientation="portrait"> //화면을 가로로 유지 android:label="@string/app_name" android:screenOrientation="landscape"> 2. 자바 소스 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 2013. 12. 31.
안드로이드 메뉴 사용하기 (How to use Menu Inflation) - XML (\res\menu\ 폴더에 저장 됨)에 메뉴의 형태를 기술- 소스 코드 내부에서 XML 파일을 inflate하여 메뉴의 초기 모양을 구성- 어플리케이션 로직과 디자인을 분류함으로 간결한 코드를 만들 수 있는 장점이 있음- 또, menu XML 문서는 메뉴 생성 visual tool (eclipse ADT plug-in)을 사용해 쉽게 만들거나 수정 가능 1. - menu xml 문서의 root element- 과 element를 포함(nest)- submenu구성을 위해 element 밑에 포함 1. - 는 들을 그룹으로 묶기 위해 사용되는 element이다.- 지원 attributeandroid:id : 그룹별로 유일한 구분자(identifier)를 설정android:menuCategory.. 2013. 12. 31.
안드로이드 상태 저장 어플을 제작 하다 보면, 상태를 기억해야 하는 경우가 많이 존재 한다. 내가 기입한 전화번호를 기억 한다던가, 작성하던 글을 기억 한다던가, ID를 기억 한다던가 등등. 개발자 입장으로 이야기 하면, CheckBox의 상태 기억, 마직막 설정 값 기억 등등을 이야기 할 수 있을거 같다. 해결책은 간단하다. SharedPreferences를 사용하면 된다. 사용법 또한 매우 간단해서, 아래 예제를 참조하면 이해가 가능 할 것이다. 1. Save Data SharedPreferences shprefs = getSharedPreferences((String)"GroupSMSApp", MODE_PRIVATE); SharedPreferences.Editor preeditor = shprefs.edit(); pre.. 2013. 12. 31.
안드로이드 매니페스트 퍼미션 종류 android.Manifest.permissionACCESS_CHECKIN_PROPERTIESAllows read/write access to the "properties" table in the checkin database, to change values that get uploaded.ACCESS_COARSE_LOCATIONAllows an application to access coarse (e.g., Cell-ID, WiFi) locationACCESS_FINE_LOCATIONAllows an application to access fine (e.g., GPS) locationACCESS_LOCATION_EXTRA_COMMANDSAllows an application to access extra.. 2013. 12. 30.
안드로이드 Surface View 1. Surface View애플리케이션에 있는 뷰들은 GUI 스레드 상에서 그려지는데 요녀석이 백그라운드에서는 돌지 않는다. 그래서 다시 애플리케이션이 활성화 되거나 어떤 이벤트 동작을 받았을 경우에 새로 그려지게 되는데 처리량이 많은 경우 이렇게 되버리면 눈앞에서 변경되는 모습이 나타나 버벅거림으로 보이게 된다. 여기까지만 보면 더블버퍼링이 생각나시는 분들이 상당 수 이실텐데 바로 그것이 서페이스 뷰(Surface View)다. Surface의 사전적 용어처럼 액티비티의 내용을 항상 Surface에 그려주고 이 Surface를 화면에 뿌려주게된다. 즉 더블 버퍼링의 메모리에 해당하는 부분이 Surface인 것이다. Surface 는 백그라운드에서도 지속적으로 작업을 하고 있기 때문에 속도도 빠르다고 볼.. 2013. 12. 30.
안드로이드 바인더(Android Binder)가 탄생하기 까지 예전에 비(Be) 라는 이름의 회사가 만든 비박스(BeBox) 라는 컴퓨터가 있었다. 이 컴퓨터는 BeOS 라는 자신만의 OS를 장착하고 있었고, 꽤 참신한 아이디어들로 무장하고 있었지만, 결국 시장의 반응을 끌어내지는 못한 채, 다른 회사에 흡수되고 말았다. Be를 인수한 팜(Palm)은 팜 파일럿(Palm Pilot) 이라는 PDA로 한 시절을 풍미한 회사다. 팜 역시 나름의 복잡한 역사를 갖고 있지만 여기서는 필요한 만큼만 언급하고 넘어가기로 하자. 팜(Palm), 팜원(PalmOne), 팜소스(PalmSource)를 구별하지 않고 팜이라고 부르겠다. 여기까지가 2001년의 일이다. 어쨌거나 꽤 오래 전임에도 불구하고 시스템 API를 모두 C++로 제공하는 도전적이고 스타일 있는 시스템으로 기억되고.. 2013. 12. 30.
안드로이드 Binder Source Analysis (바인더 소스 분석) Binder를 사용하는데 굳이 Binder의 동작에 대해 알 필요는 없다. 그러나 Binder에 대해 정확히 알면 활용면에서도 그렇고 디버깅에서도 많은 도움이 된다. 그리고 세상에 알아서 나쁜 지식은 없다. 관련된 함수를 모두 분석하진 않겠다. 오히려 더 어렵게 느껴질 뿐이다. 어떤 역할을 하는지 알면 필요할 때 찾아보면 될 것이다. Binder는 service_manager와 함께 시작된다. service_manager의 main함수를 살펴보자. binder_open()함수를 통해서 "/dev/binder"를 open하고 binder_loop()함수를 실행하는데, 이 때 인자로 binder_state 포인터 변수와 BINDER_SERVICE_MANAGER를 넘긴다. 이것은 필요에 따라 실행되는 프로세스.. 2013. 12. 30.
안드로이드 채팅 형식 List View Layout 1. 소스 2013. 12. 30.
728x90