본문 바로가기

android34

[Android] ACTION_CREATE_DOCUMENT 로 파일 만들기 ref: FileCreateActivity.java package com.finc.strageframewok; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v7.app.AppCompatActivity; import android.view.View; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStream; import java.io.Outpu.. 2019. 10. 11.
[android] webView.loadData 안드로이드 웹뷰에서 utf-8 인코딩 html 텍스트를 올바르게 로딩하기 val htmlText = "...." if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH) { webView.loadData(htmlText, "text/html", "UTF-8") } else { webView.loadData(htmlText, "text/html;charset=UTF-8", null) } 타겟 SDK 가 Q 이상이면 Base64 로 인코딩해야 한다. val encodedHtml = Base64.encodeToString(htmlText.toByteArray(), Base64.NO_PADDING); webvi.. 2018. 6. 13.
[Android] 터치 위치에 뷰가 있는지 확인하는 방법 check if the view is exist at touch point override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { if (ev?.action == MotionEvent.ACTION_DOWN) { val outRect = Rect() theView.getGlobalVisibleRect(outRect) if (!outRect.contains(ev.rawX.toInt(), ev.rawY.toInt())) { // 안에 있구나 return true } } return super.dispatchTouchEvent(ev) } 2018. 5. 30.
RxJava의 스케줄러 Schedulers in RxJava http://www.baeldung.com/rxjava-schedulers 문서 번역임. RxJava에서 제공하는 Schedulers를 이해하는 데 좋은 자료더군요. 테스트 코드는 조금 오류가 있어서 코멘트 달았습니다.. 1. 개요 Overview 이 문서는 RxJava의 여러가지 Schedulers에 대해 설명한다. Schedulers는 RxJava에서 옵저버블(Observable)의 subscribeOn 또는 observeOn 함수를 통해 멀티 스레딩 작업을 하는 데 사용한다. Schedulers는 옵저버블 연결에서 실행되는 작업들을 언제-어디서 실행할지 결정할 수 있게 해 준다. Schedulers 클래스 팩토리 함수를 통해 하나의 스케줄러를 생성할 수 있다. .. 2018. 4. 18.
[android] Simplify Firebase ChildEventListener 파이어 베이스 데이터베이스에서 자식노드 이벤트 리스너를 달 때마다, 필요없는 콜백까지 적어줘야 해서 코드가 좀 길어지고 불편했다. 그래서 간단히 커스텀 클래스를 만들었다. import com.google.firebase.database.ChildEventListener import com.google.firebase.database.DataSnapshot import com.google.firebase.database.DatabaseError /** * Created by brownsoo on 2018-04-10. */ open class FireChildEventListener : ChildEventListener { private var cancelled: ((DatabaseError) -> Unit.. 2018. 4. 11.
리액티브 앱을 만드는 데 좋은 포스트 하나 일관적인 상태관리, 리액티브 앱 개발을 위해. 아주 좋은 포스트 임. 구현해보자 This post is part of the blog post series "Reactive Apps with Model-View-Intent". Here is the Table of Content:Part 1: ModelPart 2: View and IntentPart 3: State ReducerPart 4: Independent UI ComponentsPart 5: Debugging with easePart 6: Restoring State 2017. 5. 15.
안드로이드 스튜디오에서 Gradle dependency 찾기 안드로이드 스튜디오에서 빌드 혹은 실행하다 꼬이는 오픈소스 Dependency를 해결하려면, 어느 놈이 어떤 외부 소스를 참조하는지 살펴봐야 한다. 다들 아시겠지만... 1. 안드로이드 스튜디오에서 Gradle 창을 연다. 2. Gradle 아이콘을 클릭하면, 아래와 같은 입력창이 뜸. Gradle project 이름이 잘 선택됐는지 확인.3. 코맨드 라인에 그래들 명령을 적어서 오케이! :모듈이름:dependencies 2016. 12. 28.
ViewDragHelper 기초 다지기에 좋은 내용 Each Navigation Drawer Hides a ViewDragHelper http://flavienlaurent.com/blog/2013/08/28/each-navigation-drawer-hides-a-viewdraghelper Dragging With ViewDragHelper http://fedepaol.github.io/blog/2014/09/01/dragging-with-viewdraghelper/ 2015. 10. 7.
[안드로이드] 화면 사이즈 구하기 항상 안드로이드에서 화면사이즈 구하기 피곤하네요.. 적어둬야지. 아래 코드에서 4가지 방법으로 화면 사이즈를 구하고 있다. WindowManager wm = (WindowManager) mActivity.getSystemService(Context.WINDOW_SERVICE); Window window = mActivity.getWindow(); Rect windowRect = new Rect(); Rect screenRect = new Rect(); //Excludes status bar & soft key window.getDecorView().getWindowVisibleDisplayFrame(windowRect); //Whole screen window.getDecorView().getGlobal.. 2015. 4. 13.
[안드로이드] 안드로이드 스튜디오에서 빌드 파일 이름 수정하기. build.gradle 파일을 열고, 빌드 타입 노드에 applicationVariants.all 함수를 구현한다. 여기에서는 'app' 이름을 '앱이름-버전'로 변경한다. android { defaultConfig { applicationId "앱이름 패키지명" minSdkVersion 16 targetSdkVersion 22 versionCode 10000 versionName "1.0.0" } buildTypes { release { signingConfig signingConfigs.release minifyEnabled true proguardFile 'proguard-rules.txt' applicationVariants.all { variant -> variant.outputs.each { .. 2015. 3. 23.
(안드로이드) 테스트용 이미지 로딩 스레드 비동기식으로 이미지를 로딩할려고 했던 것. 지금은 오픈소스로 대체. private class LoadThread extends Thread { public volatile boolean isActive = false; private ImageView imageView; private String path; public LoadThread(ImageView imageView, String path) { this.imageView = imageView; this.path = path; } @Override public synchronized void start() { isActive = true; super.start(); } public void cancel() { isActive = false; } @O.. 2015. 2. 26.
(안드로이드) 색정보로 Drawable 만들기 Make a drawable with color value in android 키포인트는 mutate() ColorDrawable drawable = new ColorDrawable(item.color); drawable.setBounds(0, 0, 10, 10); imageView.setImageDrawable(drawable.mutate()); 2015. 2. 24.