하루에 0.01%라도 성장하자
반응형

Develop/Android 71

WebView에서 노출되는 Player Default Poster 없애기!

안드로이드에서 웹뷰를 통해 웹사이트에 있는 플레이어를 제어 혹은 보여준다고 하면 로딩할때 디폴트 포스터가 노출된다 Player Default Poster는 아래 이미지를 말한다. 정상적으로 로딩하더라도 버퍼를 받아오는 동안에는 해당 포스터를 나온다. 이 포스터를 없애는 방법은 아래와 같다. java, Kotlin 두개의 방법으로 소스코드를 공유한다. 해결법 * Kotlin /* Kotlin */ webView.webChromeClient = WebChromeClientCustomPoster() // 아래 만든 클래스를 webChromeClient로 등록하기 class WebChromeClientCustomPoster : WebChromeClient(){ override fun getDefaultVideo..

Develop/Android 2019.09.19

현재 액티비티(Activity) 확인하는 법 ( feat. singleTask )

현재 액티비트를 확인 해야 하는 상황은 생각보다 많다. 나같은 경우는 사이드 메뉴를 사용하다가 작성하는 기능이 필요 했다. 사이드 메뉴에 A, B, C 메뉴를 만들고 A를 클릭하면 A Activity로 이동. B를 클릭하면 B Activity로 이동하는 로직이다. 이슈가 되었던 건 현재 Activity가 A 인데도 A 메뉴를 누르면 새로운 A Activity가 뜬다는 점이었다. 이슈를 확인하고, 현재 Activity를 확인하여 이동해야 하는 메뉴와 같은 Activity라면 이동하지 않는 로직을 만들었다. 코드 String currentActivityName = getClass().getSimpleName().trim() // 해당 코드를 이용하면 현재 Activity의 파일 명이 나온다. // ex. M..

Develop/Android 2019.08.23

Android ) Handler postDelayed 사용법

프로젝트상 자주 사용은 하지 않는데, 가끔 찾아보면 기억 안날때가 많아서 다시 기록하는 차원으로 남겨둔다. import android.os.Handler; Handler handler = new Handler(); handler.postDelayed(new Runnable(){ @Override public void run(){ // 실행할 코드 } }, 1000); // 몇초 뒤에 실행할 코드를 실행할 것인가! ( 단위 : ms ) 주의사항! 이건 내가 잘 몰랐을때 고생했었던 경험담인데... Handler 를 처음 지정하면 android.os.Handler를 import 할 것인지, java.util.logging.Handler를 import 할 것인지 선택할 수 있는데, 무작정 자동완성 된다고 Ent..

Develop/Android 2019.08.23

안드로이드 스튜디오 테마를 변경해보자!

안드로이드 스튜디오를 사용한다. 안드로이드 스튜디오는 그만의 멋진 테마가 있다. Darcula 라는 테마가 거의 메인 테마인데, 나도 해당 테마를 약 2년동안 사용하다가 약간 지루?해지고 뭔가 음... 칙칙한 느낌을 받아 기분 전환겸 테마를 변경해 보려고 찾아보았다. 테마를 변경하려고 구글링(갓글링)을 했는데 대부분 Setting을 통해 Darcula로 변경하는 방법에 대해서만 나와있었고 다른 내용은 거의 찾아보기 힘들어서 이 글을 작성했다. 플러그인!(Plugin) 기본적으로 제공하는 테마도 물론 멋지지만, 역시.. 테마를 전문적으로 하는 조직(?)과 비교하기에는 조금 아쉬운 부분이 많다. 이번에 찾은 Material Design팀은 이런 UI를 전문적으로 고민하고 만드는 곳 같았다. 그래서 해당 Pl..

Develop/Android 2019.08.09

Kotlin ) 웹 뷰를 이용한 사이트 이동, 검색앱 만들기.

간단한 어플이다. WebView를 이용해서 검색앱을 만드는 것이다. 다만, 나는 코틀린으로 했다는 것에? 살짝 의미를 둔다. 그리고 코틀린으로 해보니... 너무 코드가 간결해지고 쉬워졌다. 개발된 기능 앱을 켰을때 WebView를 이용해서 메인 사이트를 보여준다. 옵션 메뉴를 이용한 저장된 사이트 이동. 암시적 인텐트를 이용한 전화, 문자, 이메일 메뉴 만들기 일부 소스코드 [ 웹뷰 소스코드 ] webView.apply { settings.javaScriptEnabled = true // 자바스크립트가 잘 동작하도록 설정 webViewClient = WebViewClient() // 웹뷰에서 페이지가 뜨도록, 설정 안해주면 기본 브라우저가 실행됨. } webView.loadUrl("www.naver.co..

Develop/Android 2019.07.03

kotlin-android-extensions 와 Anko 라이브러리

kotlin-android-extensions kotlin-android-extensions 플로그인을 이용해 뷰의 id를 findViewById를 이용해 가져올 필요가 없어졌다. // 기존 사용 Button btnA; btnA = findViewById(R.id.btn_a); btnA.setOnclickListener(listener); // 코틀린 사용 btn_a.setOnClickListener(listener) // Button을 정의해줄 필요가 없음. Anko 라이브러리를 이용한 코드 단축 Intent를 이용해 화면을 전환할 때 Anko를 사용할 때와 사용하지 않을 때 코드 길이차이가 많이 난다. 처음엔 나도 너무 간단해서 이게 뭔가 싶었는데.. // 기존 val intent = Intent(t..

Develop/Android 2019.06.17

Kotlin ) 코틀린 기초 Part#8 - 확장함수, 형변환, 그외 함수

확장함수 기존 클래스에 함수를 추가할 수 있음. fun Int.isEven() = this % 2 == 0 val a = 10 val b = 15 println(a.isEven()) // true println(b.isEven()) // false 기본 자료형에 isEven을 추가하여 사용. 형변환 다른것은 JAVA와 크게 다르지 않으며, 클래스간의 형변환을 하려면 as 키워드를 사용한다. open calss A // A클래스 생성 class B : A() // B클래스 생성과 동시에 A클래스 상속 val c = B() // c를 B클래스로 초기화 val d = c as A // d 에다가 c를 넣어주지만 A클래스로 형변환 하여 전달 형체크 형체크는 is로 한다. java의 instanceOf와 같다. ..

Develop/Android 2019.06.14

Kotlin ) 코틀린 기초 Part#7 - 람다식, SAM

람다식 람다식을 이용한 함수 표현 fun add(x: Int, y:Int):Int { // Int형 return 값. return x+y } fun add(x:Int, y:Int) = x + y // 반환 자료형을 생략하고 블록과 return 생략 var add = {x :Int, y: Int -> x + y} println(add(2 5)) // 7 SAM ( Single Abstract Method ) 자바로 작성된 메서드가 하나인 인터페이스를 구현할 때는 대신 함수를 작성할 수 있는데, 이것을 SAM이라고 한다. button.setOnClickListener(object : View.OnClickListener { override fun onClick(v : View?) { //클릭 시 처리 } }..

Develop/Android 2019.06.13

Kotlin ) 코틀린 기초 Part#6 - 컬렉션

컬렉션 - 개발에 유용한 자료구조 리스트 (list) 배열처럼 인덱스를 이용해 접근 할 수 있다는 것이 장점. // 변경할 수 없는 리스트 사용 val strList : List = listOf("하잉", "뚠님", "힝") val strList : listOf("하잉", "뚠님", "힝") // 형추론으로 자료형 생략 가능 // 요소 변경하는 리스트는 mutableListOf() 메서드를 사용 // 자바와 다르게 요소 번호로 접근 가능 val strList = mutableListOf("하잉", "뚠님", "힝") strList.add("후음") // 맨뒤에 추가 strList.removeAt(0) // 맨앞 요소 삭제 strList[1] = "뚠님입니다." // 1번 요소를 "뚠님입니다."로 변경 p..

Develop/Android 2019.06.13
반응형