본문 바로가기
반응형

Android29

Android Spannable 적용 Android Spannable 적용 거두절미하고 안드로이드에서 Spannable을 사용한 예제 코드다. 본 내용은 지금 보고 있는 도서(깡샘의 안드로이드 프로그래밍)에서 보고 옮겨 두는 것이다. 실무에서 바로 바로 필요할 때 검색을 해서 사용하기도 하지만 유용하게 사용할 수 있는 코드나 사용법을 정리해 두면 좋다. String data = "복수초 \n img \n 이른봄 설산에서 만나는 복수초는 모든 야생화 찍사들의 로망이 아닐까 싶다."; 이 문자열 중 "img" 라는 단어 위치에 이미지를 출력한다고 가정. //Spannable을 포함하는 문자열SpannableStringBuilder builder = new SpannableStringBuilder(data); //img 문자열 시작 위치 int .. 2018. 10. 23.
Android의 setTag()와 getTag() 안드로이드의 모든 뷰(View)에는 개발자 임의의 데이터를 저장할 수 있다. 원래 뷰는 visible 데이터인데, 화면과 전혀 상관이 없는 개발자 임의의 non-visible데이터를 저장할 수 있다. setTag()는 저장할 때, getTag()는 다시 획득할 때. setTag(value)하게 되면 하나의 값을 저장하는 것이고 여러개를 저장하고자 할 때는 setTag(key, value)와 같은식으로 하며, getTag(key)와 같은 식으로 값을 획들 할 수 있다. 데이터를 저장할 자바의 Object 타입으로 캐스팅되므로 문자열부터, 숫자, 객체, 등 자바의 모든 데이터를 저장할 수 있다. 안드로이 개발에서 유용하게 사용할 수 있는 이 방법은 데이터를 잠깐 저장해 두었다가 획득해 사용해야할 때 유용하게.. 2018. 10. 22.
Adapter 와 AdapterView AdapterView의 역할은 항목을 나열하는 뷰이다. 하나의 뷰에 여러 데이터를 나열하고 그 중 하나를 사용자로부터 선택 받아 다음 프로세스가 처리되는 뷰이다. AdapterView의 구조는 최상위 View를 기준으로 ← ListView ← AbsListView ← GridView View ← ViewGroup ← AdapterView ← AbsSpinner ← Spinner 상속 관계를 가지고 있다. AdapterView 자체로는 화면에 아무것도 나오지 않으며 화면에 나타내려면 반드시 Adapter라는 클래스를 이용해야 한다. Adapter클래스는 뷰는 아니지만 AdapterView를 만들어주는 클래스 역할을 한다. 또한 안드로이드에서 화면 출력을 위해 액티비티가 실행되어야 한다. 결국 Adapter.. 2018. 10. 22.
안드로이드 타이머 만들기 (TimerTask & Timer & Calendar & Date) 안드로이드 타이머 만들기 (TimerTask & Timer & Calendar & Date) 메인스레드를 이용해 정해진 시간까지 카운트(초)를 갱신하는 작업을 진행했다. 안드로이드는 자바 언어를 사용하므로 자바 언어를 어느정도 알아야 한다. 아이폰의 경우 오브젝티브-C와 스위프트 언어를 학습하고 하면 된다. 아이폰으로는 비교적 쉽게 만들었다. 리소스가 많은편이고 경험도 어느정도 있기때문에. 안드로이드의 경우는 검색하는 것 조차도 어려울정도로 문외한이고 기본적인 학습도 안된 상태로 운영 중인 앱에 기능을 넣다보니 맨땅에 헤딩하는 수준이다. 그래도 하나씩 풀어 만들어질 때 희열은 있다. 재미있다. Timer timer;public void runTask() { TimerTask task = new Timer.. 2018. 10. 18.
Android Main Thread UI처리 관련 팁. Android Main Thread UI처리 관련 팁. 몇일동안 안드로이드 애니메이션 작업을 하고 있다. 메인 메뉴에 약간의 애니메이션을 넣는 작업인데 생각보다 어렵다. 안드로이드가 익숙하지 않은 이유도 있지만 수학적 공식과 난해한 좌표계산은 일찍이 포기한 상태라 더 그런 것 같다. 우여곡절 끝에 외부 라이브러리를 이용해 원하는 애니메이션을 적용할 수 있었는데 이것 저것 소스를 onCreate()안에 집어 넣었더니 애니메이션의 좌표점 계산이 눈에 보이면서 버벅되는 현상이 나왔다. 왜 이런걸까? 하고 @Override 되는 몇몇 메서드를 살펴보니 UI작업을 하는 메서드들이 여기저기서 호출되고 있었다. @Override 되는 onMeasure()와 onLayout()등이 지속적으로 호출이 되는데 onCrea.. 2018. 10. 16.
px to dp & dp to px dp(dip)에 대해 따로 책에서 내용을 옮길 생각이지만 우선 소스를 보다 보니 변환해주는 메서드가 있어 옮겨둔다. 쓸일이 있을지는 모르겠다. /** * * @param px * @return */ public static float pxToDp(float px) { return px / Resources.getSystem().getDisplayMetrics().density; } /** * * @param dp * @return */ public static float dpToPx(float dp) { return dp * Resources.getSystem().getDisplayMetrics().density; } 2018. 10. 12.
반응형