안드로이드 스튜디오는 gradle 이 들어가면서 계속 안 익숙하고 있다.
gradle을 먼저 배워야 할까봐.

이번 프로젝트에서 QR코드 사용하는게 있어서 구글의 Zxing 라이브러리를 사용하기로 했다.
몇 년전에는 1인가 2 버전이었던듯 싶은데 지금은 3.2가 나왔네.

한참을 고민했지만...
역시나 적용하는 방법은 지극히 간단했다.

https://github.com/journeyapps/zxing-android-embedded


안드로이드에서 사용하기 위해서 최소화한 버전이다.
별도로 라이드러리를 다운로드 받을 필요없이 자동으로 다운로드 받아서 설치한다.
인터넷이 막힌곳에서는 문제이긴 하겠지만.. ^^

나는 Version 3을 사용했고
Module 에 있는 build.gradle 쪽에 아래를 추가한다.

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.1.1'
compile 'com.android.support:support-v4:22.1.1'

compile 'com.journeyapps:zxing-android-embedded:3.0.0@aar' // 추가
compile 'com.google.zxing:core:3.2.0' // 추가
}


이렇게 설정하면 빌드할때 다운로드 받고 컴파일한다.
libs 에 추가하는것은 따로 찾아봐야할듯.
요즘 인터넷 안되는 곳 많잖아.. ㅠㅠ

참.. 이걸 Project 에 있는 build.gradle 에 추가하면

Error:(13, 0) Gradle DSL method not found: 'compile()'


이런 에러 발생한다.
참고할것..

크리에이티브 커먼즈 라이센스
Creative Commons License
2015/06/05 12:26 2015/06/05 12:26

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다


뭐 대충 이런 형식이다.
<FrameLayout>
<LinearLayout>
<ScrollView>
</ScrollView>
</LinearLayout>

<LinearLayout>

</LinearLayout>

</FrameLayout>



아래 레이아웃이 하단 메뉴인데
EditText를 눌러서 키보드가 나올때 아래 하단메뉴가 키보드를 따라 위로 올라가 버린다.

중간에 ScrollView 가 있어서 나오는 현상인데
이걸 어떻게 해결하느냐.

ScroolView에
android:isScrollContainer="false"

를 넣어주면 된다.

동작원리는..... 나중에 찾아볼란다.


참고 : http://stackoverflow.com/questions/5516216/how-to-avoid-soft-keyboard-pushing-up-my-layout
크리에이티브 커먼즈 라이센스
Creative Commons License
2013/06/13 21:59 2013/06/13 21:59

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다


언제나 갤럭시 시리즈는 맘에 안든다.

MapView에 자기 위치를 표시하기 위해서는 가장 간단히는 MyLocationOverlay 를 사용한다.
센서 설정해줄 필요도 없이 알아서 표시하고 위치 따라다니고 편하거든.

오늘 테스트를 하는데 다른것들은 괜찮은데 갤럭시A에서 그냥 MapView 페이지만 들어가면 죽는것이다.
리소스를 많이 먹나 했는데 그런쪽은 아닌거다.

E/AndroidRuntime( 1662): Uncaught handler: thread main exiting due to uncaught exception
E/AndroidRuntime( 1662): java.lang.ClassCastException: android.graphics.drawable.BitmapDrawable
E/AndroidRuntime( 1662):        at com.google.android.maps.MyLocationOverlay.getLocationDot(MyLocationOverlay.java:180)
E/AndroidRuntime( 1662):        at com.google.android.maps.MyLocationOverlay.drawMyLocation(MyLocationOverlay.java:561)
E/AndroidRuntime( 1662):        at com.google.android.maps.MyLocationOverlay.draw(MyLocationOverlay.java:511)
E/AndroidRuntime( 1662):        at com.google.android.maps.OverlayBundle.draw(OverlayBundle.java:45)
E/AndroidRuntime( 1662):        at com.google.android.maps.MapView.onDraw(MapView.java:494)
E/AndroidRuntime( 1662):        at android.view.View.draw(View.java:6535)
E/AndroidRuntime( 1662):        at android.view.ViewGroup.drawChild(ViewGroup.java:1531)
E/AndroidRuntime( 1662):        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
E/AndroidRuntime( 1662):        at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
E/AndroidRuntime( 1662):        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)


구글에게 물어봤다.
http://community.developer.motorola.com/t5/Android-App-Development-for/Google-Maps/m-p/3421/highlight/true#M396


갤럭시에서 아마도 현재 위치를 표시하는 리소스를 빼먹은거 같다.
그래서 오류가 있을 경우 직접 현재 위치를 고쳐주게 한다는 의미이다.
자세한것은 위를 참조
MyLocationOverlay 를 위의것으로 대체.

현재 위치 표시하는 이미지는 직접 만들어서 지정하면 된다.
없으면 저 위의 링크에 기본 이미지가 있으니 참고한다.




크리에이티브 커먼즈 라이센스
Creative Commons License
2010/12/17 14:06 2010/12/17 14:06

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

  1. # 우중산보 2010/12/27 10:24 Delete Reply

    뭔 소리야 이게.
    A급 은하계는 몰겠고 S급 은하계는 참 좋긴 하다 : )
    SKT가 위에 씌워놓은 것들 제거하고 커스터마이징 하니 마음에 든다 ㅎ

    1. Re: # 서툰걸음 2011/01/10 13:26 Delete

      갤럭시는 역시 갤럭시도 보내야 함... ㅡ,.ㅡ


한심한 KT 올레 스토어.

Posted 2010/11/12 23:08, Filed under: 뚜.. 서툰../중얼거림
전부터 넥서스원 사용자인데 어플상의 지도가 안 나온다는 얘기가 있었다.
KT 올레 스토어 담당자 얘기로는 구글맵 apikey 를 받아서 설정해야 한다고 전달은 받았는데

그거야 그쪽 개발하는 담당자 입장으로는 당연한거 아닌가.

자동 생성되는 debug용 인증서말고
배포용 인증서를 생성해서 해당 인증서로 apikey 를 받아서
설정했으니까
홈페이지나 티스토어에서 배포하는거 아니겠어.

어제 담당자랑 직접 통화하면서 황당한 내막을 알게 됐다.


간단히..
서명이 올레스토어 시스템내에서 이루어진단다.
서명하는 인증서가 틀리니 구글맵 API Key가 안 맞아서 지도가 안 나오는거였다.

인증서라는게 주체를 나타내는건데 거기서 해 버리면 어떻게 하느냐.
..자기네 상용시스템내에서 다 그렇게 발급하고 있단다.
그렇게 인증서를 바꿔버리면 다른 어플과 소스가 동일한데 API Key 때문에 어플이 달라져버리는데 어떻하느냐.
..다른 배포방법을 고려할 필요가 없다.
그러면 서명에 사용할 인증서를 줄수 있느냐.
..시스템내에서 자동으로 이뤄지기 때문에 따로 주는건 없다.

참나...

인증서가 틀려버리면 가장 큰 문제는..
똑같은 패키지명을 가지고 있어도 폰에서는 다른것으로 간주한다.
다른것으로 간주하고 설치해주면 그나마 낫겠는데
설치하다가 그냥 오류라고 하고 설치가 안된다.

올레스토어에서 받아서 설치했다면
홈페이지나 안드로마켓쪽에 가서 설치할려고 하면
오류를 내고 설치가 안된다.

더구나 apikey 때문에 KT용으로 따로 컴파일 해야 한다.

전혀 다른 시스템을... 가장 가까운 안드로마켓조차 고려하지 않은 시스템이다.

이런것때문에 물어봤다. 다른곳에서 이의 제기 하는곳 없냐.
..없단다.

문듯 든 생각..
아.. 글치... KT는 안드로이드폰이 별로 없지...

애휴.... 앞으로 KT용 안드로이드폰은 전혀 고려대상이 아니다..
 
크리에이티브 커먼즈 라이센스
Creative Commons License
2010/11/12 23:08 2010/11/12 23:08

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다




http://developer.android.com/resources/articles/drawable-mutations.html


해답은 가까운데 있었다.
상세한것은 위의 링크를 참고한다.

사용자 삽입 이미지



증상은 이런거다
커버플로어를 구현하면서 업체 요청사항이
select 된 아이템 이외의 것은 반투명하게 보여 달라는거였다.

그래서 setAlpha 값을 조정해서
옆에 있는것처럼 구현했다.

잘 된다 싶었는데
문제가 생겼다.


이런 문제다.
사용자 삽입 이미지
같은 리소스이지만 별도의 이미지객체로 만들어진 녀석들에까지
반투명하게 변해버린것이다.

처음에는
화면이동할때 notifyDataSetChanged 를 호출해서 getview에서 새로 이미지를 세팅하게 했는데
너무 무식하잖아.

다른거 검색하다가 저 위의 링크를 읽다가 같은 사항이라는 것을 깨닫을것이다.
해답은 늘 가까운곳에 있다더니.. ^^

BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable();
drawable.mutate().setAlpha((int)(255*mUnselectedAlpha));



위에 처럼 mutate 를 추가로 넣어주면 된다.
코드가 아주 깔끔해졌다.

크리에이티브 커먼즈 라이센스
Creative Commons License
2010/11/11 23:32 2010/11/11 23:32

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다



뚜는 지금.. 사랑해사랑해
아.. 열심히 살자..
남자B형염소자리인천

Categories

전체 (504)
뚜.. 서툰.. (258)
폰 이야기 (13)
나의 길 (85)
읽을거리 (21)
사진갤러리 (124)

Recent Posts

  1. Android Studio 2.2 에서 layout 미리...
  2. mac 에서 ssh 접속시 한글 입력이 안될때.
  3. Android Studio. Zxing 라이브러리 사...
  4. 안드로이드 프로젝트를 SVN 등록시 bin...
  5. 안드로이드에서 android.annotation 를...

Recent Comments

  1. Thanhk you for this informative read... Software Engineering 2018
  2. 오전부터 이것때문에 하루 종일 고생함... choi 2016
  3. 진짜 님이 하루 죙일 겜방에 갇혀서 있... 굳굳 2015
  4. 대박 이걸 어떻게 찾으셨어요? 덕분에 ... 34524 2015
  5. 와 이건 진짜 신의한수 였네요~ 감사합... interlude 2015

Recent Trackbacks

Bookmarks

  1. ATOMOS
  2. c3cc3's Homepage
  3. 봄실
  4. 우중산보... 그 싱그러운 여유

1126

885

google chart api graph

-30 days

today : 480

Site Stats

TOTAL 1469220 HIT
TODAY 480 HIT
YESTERDAY 983 HIT