2017.11.29 12:59

이클립스로 apk를 말아올리던 중


sun/misc/BASE64Encoder


이런 에러가 자꾸 발생하였다.


원인은 java9를 설치했기 때문. java8로 바꾸니까 에러가 사라졌다.


괜히 최신버전을 설치했다.

신고
Posted by 그린블로그 DEV그린
2017.07.02 05:21

https://github.com/khaledev/ADT/releases/tag/adt20160729


여기서 adt 다운 받은 후


이클립스 실행


help - Install new software - Add - Achive


에서 다운받은 adt 24 zip 파일 클릭


설치 - 재실행

신고
Posted by 그린블로그 DEV그린
2017.02.03 04:33

24dip를 


자바 코드로 표현하고 싶으면


TypedValue.COMPLEX_UNIT_DIP, 24


이런식으로 하면 됩니다.



TextView의 setText만 허용

신고
Posted by 그린블로그 DEV그린
2017.01.25 04:07



Java - Code Style - Formatter





여기서 New를 눌러야 합니다. 


자신만의 스타일을 사용하겠다고 알려 주는 것으로


default로 설정돼 있는 것은 Edit할 수 없기 때문에 반드시 New를 눌러야 합니다.




그 다음에 Line Wrapping 탭을 누르신 후


Maximum Line Width를 수정해주면 됩니다.



그리고 소스로 돌아와서


Ctrl + Shift + F를 누르면 정상 동작 합니다

신고
Posted by 그린블로그 DEV그린
2016.01.12 04:15

커스텀 다이얼로그에 EditText를 넣었을 때


다이얼로그가 뜨자마자 바로 키보드가 뜨게 하는 소스입니다.



InputMethodManager ime = null;

ime = (InputMethodManager)Category_Edit.this.getSystemService(Context.INPUT_METHOD_SERVICE);

ime.showSoftInputFromInputMethod(((EditText)dialog.findViewById(R.id.edt)).getWindowToken(), InputMethodManager.SHOW_FORCED);


dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);



그리고 이렇게 코드를 넣을 땐


xml의 EditText에


 android:selectAllOnFocus="true"


이 옵션을 넣어주셔야 글자를 모두 선택하여


키보드를 쳤을 때 자연스러워집니다.

신고
Posted by 그린블로그 DEV그린
2015.09.13 01:47

EditText에 힌트를 넣을 경우가 생기는데 


막상 기기에서 보면 안보일 때가 있습니다.


이럴 땐 다음과 같이 세팅을 합니다.




android:ellipsize="end"

android:singleLine="true"


이렇게 세팅을 하면 하위버전에서 힌트가 보입니다.


그런데도 안보이면 


android:textColorHint="#888888"


힌트의 텍스트 컬러를 따로 설정해줘야 합니다.


테마에 따라 글자색이 흰색 검은색이 될 수도 있기 때문이죠.

신고
Posted by 그린블로그 DEV그린
2015.09.10 22:48

위젯을 이쁘게 잘 짜놓고


테스트 삼아 불러왔을 때 이런 문구가 뜨면서 위젯이 불러와지지 않는다면


xml에 


<View

     android:id="@+id/bg"

     android:layout_width="match_parent"

     android:layout_height="60dip"/>



<View> 애트리뷰트가 들어가 있는지 점검해보세요. 이상하게 저게 들어가있으면 불러오질 못하는 버그가 있네요.

신고
Posted by 그린블로그 DEV그린
2015.07.14 14:37
옵션에

android:selectAllOnFocus="true"

이것만 넣으시면 됩니다~


이것만 쓰기엔 뭔가 짧으니까..




android:imeOptions="actionNext"


이건 키보드의 완료 버튼을 누르면 다음 EditText로 넘어가는 속성!


android:imeOptions="actionDone"


이건 키보드의 완료 버튼을 누르면 키보드가 사라지는 속성이랍니다. ^^

신고
Posted by 그린블로그 DEV그린
2015.07.07 16:16

안드로이드 4.2 버전 부터 개발자 옵션에 


GPU 오버드로 디버깅이란게 생겼습니다. 


레이아웃 최적화를 하기 위한 설정인데요, 



해당 옵션을 오버드로 영역 표시로 바꾼 뒤에 


앱을 실행해보면 



이런 식으로 드로잉 횟수가 색상으로 표현됩니다.


파란색(Blue)이 1번 


녹색(Green)이 2번 


연한 빨강(Light Red)이 3번


진한 빨강(Dark Red)은 4번 이상입니다.


구글에서는 Light Red인 3번 정도까지는 무리 없으며 


Dark Red는 최대한 없게 만들라고 제안해주고 있습니다.



팁이 있다면 배경 레이아웃에 색깔을 따로 주고 


그 밑의 레이아웃의 배경화면에 


android:background=”@null”


이렇게 설정함으로써 그 안에서 한번 더 그려지는 것을 막아줍니다.


android:background=”@android:color/transparent” 도 같은 기능으로


착각할 수 있지만 눈에는 안보여도 실질적으론 Draw를 하기 때문에 소용없습니다.



그리고 LinearLayout을 겹쳐 쓰는 것을 최대한 자제하고


RelativeLayout를 쓰는 것을 권장합니다.


또한, LinearLayout의 Weight도 남발하면 느려지게 되니 적절히 써야 합니다.



또 LinearLayout에 android:baselineAligned="false" 란 속성을 주어


퍼포먼스가 더 나아지게 할 수도 있습니다.


정말 좋은 기능이라 요즘에 애용하고 있답니다. ^^


신고
Posted by 그린블로그 DEV그린
2015.07.07 15:52

MAP중에선 HashMap이 가장 효율이 좋지만


안드로이드에선 SparseArray가 더 효율이 좋다고 합니다.


 HashMap<Integer,Integer> map= new HashMap<Integer,Integer>();


예를 들어 다음과 같은 HashMap 코드를 SparseArray로 바꾸려면


 SparseIntArray mapnew SparseIntArray();


이렇게 바꿔주면 끝입니다. 


다만 .remove(i) 가 아니고 .removeAt(i)로 바뀌는 것만 다릅니다.



신고
Posted by 그린블로그 DEV그린
2015.07.02 20:48

EditText를 코드로 설정하려고 setMax..를 보면 MaxLength가 없습니다.


xml엔 있는데 왜 java엔 없는 것인지.. 해서 찾아보니


필터로 세팅해줘야하더군요 흠..



((EditText)dialog.findViewById(R.id.edt)).setFilters(new InputFilter[] {new InputFilter.LengthFilter(2)});

신고
Posted by 그린블로그 DEV그린
2015.07.02 20:45




android-support-v7-appcompat 프로젝트를 import 해서 


라이브러리로 쓰려고 하면 주의할 점 있습니다.


라이브러리로 쓰는 것 까진 좋은데


마지막에 APK 파일로 묶어버리면 Lint 에러가 납니다.


이 때 lint 에러 무시하고 apk로 묶어서 마켓에 올려버리면


앱이 죽는 무시무시한 결과나 나옵니다.


바로 value 폴더 안의 다른 언어설정을 때문인데요


res 폴더 안에 value-?? 해외코드들로 된 폴더들 다 지웁니다.


그래야 Lint에러가 안납니다.


Lint에러 난다고 설정에서 안보기 하지마세요 큰일납니다 ^^;


신고
Posted by 그린블로그 DEV그린
2015.05.05 01:50

style을 바꾸고 갑자기 hint가 보이지 않을 때 당황스럽더군요.


hint버그는 


android:ellipsize="end"

android:singleLine="true"


로만 잡으면 되는줄 알고 있었던 찰나..


style을 변경하면 hint 글씨 색까지 바뀐다는 사실을 문득 깨닫고 


android:textColorHint="#888888"


이렇게 Hint에 색상을 주었더니 다시 잘 나오더군요.



신고
Posted by 그린블로그 DEV그린
2015.04.08 18:25

jar파일 위주로 라이브러리를 구성한 프로젝트에 해당하는 케이스입니다.


프로젝트가 만약 android-support-v4.jar 을 따로 등록해놓았다면


다른 프로젝트를 lib로 사용할 수 없습니다. 거기서 충돌이 나기 때문입니다.


android-support-v7-appcompat를 lib로 사용할 때 자주 일어나며, 


다른 커스텀 프로젝트를 사용할 때도 일어나는 문제입니다.


해결법은 해당 프로젝트의 android-support-v4.jar을 지우면 됩니다. ^^



신고
Posted by 그린블로그 DEV그린
2015.04.08 18:19

그래픽 레이아웃에서 작업 후


빌드하고 실행하면 이상하게 위젯이 안나올 때가 있습니다.


그 이유는 바로 VIew 위젯을 넣었기 때문


<View

     android:layout_width="fill_parent"

     android:layout_height="fill_parent"

     android:background="#000" />


뭐 때문인지는 모르지만 <View 이것만 들어가면 오류가 생기더군요.


그래픽 레이아웃에서는 잘 보여주면서..



신고
Posted by 그린블로그 DEV그린
2015.03.30 23:35

커스텀 다이얼로그를 만들 때


edittext가 포커스되지 않는 현상이 있습니다.


그걸 잡을 때 사용되는 소스입니다.


InputMethodManager ime = null;

ime = (InputMethodManager)Settings.this.getSystemService(Context.INPUT_METHOD_SERVICE);

ime.showSoftInputFromInputMethod(((EditText)dialog.findViewById(R.id.edt)).getWindowToken(), InputMethodManager.SHOW_FORCED);

dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);



신고
Posted by 그린블로그 DEV그린
2014.09.24 00:58

안녕하세요~ 네오입니다.


이클립스에서 Content Assist를 즐겨 쓰시는 분들 중의 고민 하나가


"아 내가 스펠링 치자마자 바로 튀어나올 수는 없나?" 라는 것입니다.


의외로 간단하게 변경 가능한데요~


Window - Preference - Java - Editor - Content Assist 를 클릭하신 후


밑의 스샷에 보이는 Auto activation delay (ms)의 기본값이 200으로 설정되어 있는데


한 10정도로만 놓고 Apply 누르신 후 개발하시면 번개같이 뜬답니다 ㅎㅎ




신고
Posted by 그린블로그 DEV그린
2014.09.21 21:02



오늘은 이미지 CROP 소스로 작업하다 겪은 해프닝 때문에 포스팅하네요.


작업하던중 갤럭시노트3에서는 잘되던 CROP이 LG G프로에서는 카메라에서 팅기는 문제가 발견되었습니다.


leaked window com.android.internal.policy.impl.PhoneWindow dialog.show


이런 에러문구가 뜨길래 아 쓰레드에서 UI 작업만 고쳐주면 되겠구나~ 하고


쓰레드를 물려주었지만 이번엔 로그조차 나오지 않고 팅겼죠.



(대략 이 때의 멘탈)


로그 찍고, 디버그 하고 이러저러 삽질을 하다보니


이게 카메라에서 앱으로 돌아올 때 가로에서 세로로 바뀔 때 onCreate를 호출하기 때문이라는 걸 


깨닫게 되었습니다. 웃긴건 이 현상은 단말기마다 다르다는 것도요.


예를 들어, 갤럭시노트3, G3, 심지어 구형 베가레이서에서도 잘 되다가


G프로, 노트2, 갤럭시S에서는 안되는 문제였죠.


결론은 


android:configChanges="orientation|screenSize"


이걸 AndroidManifest.xml에 있는 해당 Activity에 설정해줘야 한다는 겁니다.


처음엔 


android:configChanges="orientation"


이렇게만 붙였는데 안되는겁니다.



히익..!


이게 뭐지?! 왜 안되지?


순간 제가 알고있는 지식이 잘못된 건가 혼돈이 왔고



시무룩 상태에 빠져들었으나


screenSize


요거 하나 같다붙이니까 거짓말 같이 잘 되더군요.


하.. 삽질의 하루였습니다.


신고
Posted by 그린블로그 DEV그린
2014.08.04 00:25

프로젝트를 4.4W로 맞추고 부터 Graphical Layout이 안보이는 현상이 발생합니다.


이런 경우, rendering layout in eclipse의 설정을 API19로 맞추면 다시 보이게 됩니다.


왜그런지는 잘 모르겠네요~ ^^


신고
Posted by 그린블로그 DEV그린
2014.07.04 00:32
프로그래밍중 파일명을 바꿔야 할 때가 있습니다.

A.renameTo(B)


이렇게 A에서 B로 바꾸겠다는 명령을 renameTo로 간단하게 할 수 있습니다.


자바(Java)식 코딩은 많으므로 안드로이드(Android)식으로 만들어 봤습니다. ^^


File filePre = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/폴더명"바꾸기전이름);

File fileNow = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/폴더명"바꿀이름);

                                           

if(filePre.renameTo(fileNow)){

           Toast.makeText(getApplicationContext(), "변경 성공", Toast.LENGTH_SHORT).show();

}else{

           Toast.makeText(getApplicationContext(), "변경 실패", Toast.LENGTH_SHORT).show();

}



신고
Posted by 그린블로그 DEV그린