본문 바로가기

분류 전체보기

[android] Behavior 다 이해하고 작정하고 적는것이 아니고, 적어가면서 가다듬는 용임 Android design support library와 함께 등장한 BehaviorCoordinatorLayout이 등장하면서 Scroll을 제어하기 위해 제시한 방법이다. Design Support Library( 링크 ) 를 소개할때 보이는 AppBarLayout을 감싸서 스크롤을 제어하는 모습을 볼 수 있다. 그때까지는 아마 이러한 형태의 View를 구현하려면 가장 먼저 떠올리는것이 아마 ParallaxView( 링크 )가 아니었나싶다. (이제는 모두가 CoordinatorLayout을 떠올린다.) 그런데 CoordinatorLayout을 써본 사람이라면 fling시 누구나 이런 말을 했을것이다. 100%"이거 아닌데..." 관련 동.. 더보기
[Android View] 달력만들기 CalendarView 처음에 달력을 만들때는 아주 간단하게 생각했다. 달력 - 날짜 - 정방형 - 많다 - GridView - 다음달 - ViewPager - 만세 그리고 아주 간단한 문제를 아주 복잡하게 구현했다.기본적인 기능들을 넣다보니 참으로 덕지덕지 바른 형태의 달력이 탄생했다. 구조를 대략적으로 적어보면Acitivity - ViewPager FragmentStatePagerAdapter - Fragment - GridView Adapter- View 대충 감이 올것 같은데.. ViewPager의 각 Item으로 달을 표시했고, 달에 포함된 날짜를 GridView로 구현을 했다.참 쉽게 했다. 그런데 문제는 느리다.초기화 속도가 1초에서 길게는 2초까지 갔다. 영 마음에 안들었다. 사용자는 빨리.. 더보기
[android] 인상적인 View - ContextMenu https://github.com/Yalantis/Context-Menu.Android 더보기
[android] attr/actionbarSize android.R.attr.actionBarSize 와 R.attr.actionBarSize는 다르다. AppCompat-v7 은 actionBarSize는 56dp로 R.attr.actionBarSize를 참조해야 한다. android.R.attr.actionBarSize는 플랫폼에서 정의하고 있는 값으로 48dp의 값을 가진다. 참고 주소http://stackoverflow.com/questions/26449195/new-theme-appcompat-actionbar-height 더보기
[android] 4.4 webview 파일 첨부 openFileChooser가 킷캣(os ver 4.4) 에서 변동이 생겨 킷캣 이상에서 webview가 이 함수를 호출하지 못한다. 롤리팝에서는 openFileChooser가 Deprecated 되고 onShowFileChooser라는 것이 추가됨 더보기
[android] code style 1. 개요개발 시 동일한 코드 모형을 지향함으로써 가독성 및 협업 효율 증대를 위함 2. 참고 사이트 android code stylehttp://source.android.com/source/code-style.htmljavadoc conventionhttps://developers.google.com/java-dev-tools/codepro/doc/features/audit/audit_rules_com.instantiations.assist.eclipse.auditGroup.javadocConventions#com.instantiations.assist.eclipse.audit.fieldJavadoc3. 참고 파일android-formatting.xmlOpen Eclipse and go to Wind.. 더보기
[gradle] dex size limit 문제 규모가 큰(본 프로젝트 + 참조 라이브러리) 프로젝트에서는 빌드가 안되는 문제 관련 android 글https://developer.android.com/tools/building/multidex.html dex의 정의에 관한 설명http://stackoverflow.com/questions/24224186/what-is-dex-in-gradle dex라는건 android를 빌드할 때, 이 정보를 class파일로 가지고 있는것이 아니라 .dex로 그 안에 바이트 정보로 보관하고 있다. 여기에는 클래스, 함수 등의 이름이 정의되어 있다. 문제는 초기 안드로이드는 2^16 개의 dex index 맵을 생성해 놓았다. 그렇기 때문에 build 시 dex의 index가 2^16 개가 초과해 버리면 indexou.. 더보기
[gradle] google play service 등 메소드 수가 많은 라이브러리 참조시 오류 android studio build를 하면 아래 문구와 함께 run이 되지 않는다. AGPBI: {"kind":"SIMPLE","text":"java.lang.OutOfMemoryError: GC overhead limit exceeded","position":{},"original":"java.lang.OutOfMemoryError: GC overhead limit exceeded"}... Error:Execution failed for task ':dexDebug'.> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Jav.. 더보기
[android] Lollipop (v5.x) service 오류 targetSdkVersion을 21로 맞추고 빌드를 하면 Process: com.myapp, PID: 6073 java.lang.IllegalArgumentException: Service Intent must be explicit: 위와 같은 오류가 발생한다.뭘 명확하게 하라는건데, 오류가 난 곳을 보면 Service의 Action을 특정 문자열로 사용하고 있을 것이다.이걸 특정 패키지를 지정해주면 오류가 없어진다.'어느 패키지(앱) 건지 지정해라.' 정도로 해석하면 되겠다.intent.setPackage("com.myapp")을 추가 특정 문자열로 하면 namespace관련 오류 발생 가능성이 있나보다. 더보기
[android] sqlite 사용하기 SQLite를 사용하기위해서는 1. SQLiteOpenHelper 클래스 생성2. 생성자에 Database name를 전달함으로써 SQLiteOpenHelper안에서 서 SQLiteDatabase.openDatabase() 또는 mContext.openOrCreateDatabase()로 Database를 생성또는 다시 연다.4. Table 생성3. DML 구현 끗. SQLite를 사용하는데에 SQLite 클래스 SQLiteOpenHelperSQLite의 생성자는 SQLiteOpenHelper(Context context, String databaseName, CursorFactory factory, int version)onCreate()에서 SQLiteDatabase 인스턴스로 table 생성 쿼리를 .. 더보기