기본 콘텐츠로 건너뛰기

4월, 2017의 게시물 표시

[안드로이드] 툴바(toolbar)

- 툴바 사용자가 할 수 있는 액션을 포함하며, 디자인의 일관성을 제공 명칭 : 롤리팝 부터 툴바 등장, 롤리팝 이전에는 액션 바. 툴바가 더 유연한 사용자 인터페이스를 제공함. AppCompat 라이브러리의 툴바를 사용하면 API 7까지 커버가 가능하다. 툴바 안에 일반 뷰(ImageView, TextView 등을 적적할게 추가하여 사용할 수 있다. 하지만 기본적으로 들어가 있는 패딩과 마진이 있기 때문에 사용할때 주의해야 한다.(툴바를 적용시키고 백그라운드 색을 확 티나게 적용하였을 경우 확인 할 수 있다.) - 툴바 VS 액션바 툴바의 시각적인 디자인이 변경된 것이 가장 큰 차이점. 액션바는 제약을 많이 갖고 있고, 항상 화면의 위에 나타나야 하며, 하나만 둘 수 있다. 액션바는 크기가 정해져 있어 변경될 수 없다. 툴바를 직접 포함시키는게 가능하고 원하는 곳에 위치시킬 수 있으며, 여러개가 포함 가능. 내부에 뷰를 둘 수 있고, 높이 조절도 가능하다. - 툴바에 메뉴 추가하기 res -> New -> Android resource file -> Resource type 을 menu로 변경 후 파일 생성 <item> 태그 추가 후 속성에 showAsAction 속성 부여 showAsAction : 액션 항목이 툴바에 나타날 것인지, 아니면 오버 플로 메뉴에 나올것인지를 나타낸다. ifRoom|withText 이렇게 값을 주면, 툴바에 공간이 있다면 액션항목의 아이콘과 텍스트가 모두 툴바에 나타난다. 만일 아이콘을 보여줄 공간은 있지만 텍스트의 공간은 없다면 아이콘만 나타난다. 또한 둘다 보여줄 공간이 없다면 오버플로 메뉴에 들어간다. 기타 옵션 always : 사용은 권장하지 않음, ifRoom을 사용해서 안드로이드 OS가 결정하게 하는 것이 좋음. never : 자주 사용하지 않는 액션의 경우 never로 지정해서 오버플로에 두는 것이 좋다. 사용 예 메뉴

[안드로이드] adb 환경 변수 설정, wifi 빌드

맥을 구입한 후 adb 환경 변수 설정 및 와이파이 환경에서 무선으로 빌드하는 방법에 대한 내용이다. 맥 기준임. - 환경 변수 설정 1. 터미널 실행 adb version Android Debug Bridge version 1.0.39 Revision 5943271ace17-android 이라고 나오면 환경 변수 설정은 건너 뛰어도 될 듯. 만약, 찾을 수 없다고 나온다면 다음 진행. 2. ls -al 입력 .bash_profile이 있나 확인을 해보고 없다면 파일을 만들어야 한다. 3. touch .bash_profile 4. open -e .bash_profile 5. 열린 텍스트 편집 창에 아래 내용을 복붙한 뒤 [사용자 폴더 명] 을 본인 맥에 맞게 변경한 뒤 저장 종료. export PATH=$PATH:/Users/[사용자 폴더 명]/Library/Android/sdk/platform-tools 6. 터미널 재시작 7. source .bash_profile 한 뒤 오류가 안난다면 성공. - wifi 무선 빌드 1. 같은 Wifi 또는 공유기에 연결 2. 스마트폰 USB 연결 3. 터미널 adb tcpip 5555 4. 성공시 : Restarting inTCP mode port: 5555 5. usb 연결 해제 6. 스마트 폰 ip 확인 (설정 - 휴대폰 정보 - 상태(또는 네트워크) - IP 주소) 7. adb connect [IP 주소]:5555 8. 성공시 : connected to [IP 주소]:5555 * adb device : 디바이스 상태 확인 - doze 모드 진입 방법 마시멜로우 부터 생긴 doze 모드에 진입하는 방법이다. 에뮬레이터도 가능함. http://oneday0012.tistory.com/86

[안드로이드] 프래그먼트 사용하기

- 프레그먼트 프레그먼트 생명주기           1) 액티비티의 생명주기와 비슷하나, 그 주체를 관리하는것은 OS가 아니라 액티비티임.           2) 생명주기 : onAttach, onCreate, onCreateView, onActivityCreated, onStart, onResume, onPause, onStop, onDestroyView, onDestroy, onDetach           3) 프레그먼트의 다른 생명주기 메서드들은 public이어야 한다. 이유는 프레그먼트를 호스팅하는 어떤 액티비티에서도 호출될 것이기 때문이다. - UI 프래그먼트의 호스팅 호스팅의 두 가지 방법           1) 프래그먼트를 액티비티의 레이아웃에 정적(xml에 fragment 고정)으로 추가 - 권장되지 않음           2) 프래그먼트를 액티비티의 코드에 동적으로 추가 - 권장              2. 주의 사항           1) 액티비티와 다르게 onCreate에서 프레그먼트의 뷰를 인플레이트하지 않는다 . onCreateView에서 생성하고 구성           2) onCreate에서는 인스턴스화만 진행           3) 한 화면에 최대 2~3개 이하의 프래그먼트 사용을 권장 @Override public  View  onCreateView (LayoutInflater inflater ,  ViewGroup container ,                           Bundle savedInstanceState) {     View v = inflater.inflate(R.layout. fragment_crime ,  container , false ) ;     return  v ; }     3. 프레그먼트 매니저           1) 프래그먼트를 관리하고 그것의 뷰를 액티비티의 뷰 계층에

[안드로이드] DialogFragment로 Custom Dialog 만들기

이번 포스팅에서는 안드로이드에서 기본 제공하는 다이얼로그가 아닌 커스텀 다이얼로그를 적용하면서 삽질 했던 내용에 대해서 써 보려고 한다. 만들고자 하는 모양은 아래와 같다. 이전에 포스팅한 라운드 및 그라데이션 처리된 나인패치 이미지 가 적용된 다이얼로그이다. 하단의 스샷 처럼 라디오 버튼 [동의], [미동의] 선택값을 다이얼로그에 뿌려주는 것 까지 다루려고 한다. 하지만 목적은 커스텀 다이얼로그의 구현이고, 또 귀차니즘으로 인해 결과물의 폰트나 컬러, 버튼 등은 똑같이 구현 하지는 않으려고하니 많은 양해를 바란다. ㅠㅠ 참, 이 블로그의 포스팅 목적은 개발 초보인 본인의 삽질 방지를 위한 기록에 초점이 맞춰져 있으니, 잘못된 부분이 분명 있을 수 있고, 더 심플하고, 효율적이고 방법들이 얼마든지 있을 수 있다.그러한 부분들을 번거로움을 무릅쓰고 공유를 해 주신다면 감사히 받겠습니다.(편의상 반말로 쭉~ 갈 건데.. 왠지 여기서는 존댓말을 써야....) 여튼 이제 본론으로 들어가자. 다이얼로그를 커스텀하려니 막막함에 자연스레 검색을 하게 됐다. android custom dialog 라는 키워드로 구글에 검색을 해보면.. 1. Dialog를 이용하는 방법 2. AlertDialog.Builder를 이용하는 방법 3. DialogFragment를 이용하는 방법 이렇게 3가지를 주로 찾을 수 있었다. 뭐야.. 뭐가 더 좋은거야... 검색을 계속 해보니 Android Developer 공식 홈에서 대화상자 페이지를 보니 뭘 써야 할지 알 수 있었다. 해당 내용은... Dialog  클래스가 대화상자의 기본 클래스이지만,  Dialog 를 직접 인스턴스화하는 것은 삼가야 합니다. 대신 다음 서브클래스 중 하나를 사용하세요. AlertDialog  :  제목 하나, 최대 세 개의 버튼, 선택 가능한 품목 목록 또는 사용자 지정 레이아웃을 표시할 수 있는 대화상자입니다.