'프로그래밍'에 해당되는 글 158건

  1. 2017.11.29 sun/misc/BASE64Encoder 문제
  2. 2017.10.23 [비주얼 스튜디오 단축키] 한줄복사, 열복사
  3. 2017.09.20 [유니티] 유닛 이동
  4. 2017.09.20 [유니티] tk2dSprite 컬러, 알파값 설정
  5. 2017.09.18 [유니티] 게임오브젝트가 SetActive(true) 상태인지 체크 (1)
  6. 2017.09.17 [유니티] Destroy(this)가 작동을 안할 때
  7. 2017.09.09 유니티 형변환 (String, int)
  8. 2017.09.06 [유니티] 터치가 없어도 화면이 꺼지지 않게 하는 코드
  9. 2017.09.03 [Mysql] 중복 데이터 값 찾기
  10. 2017.08.25 비주얼 스튜티오 다중 주석 처리
  11. 2017.08.21 유니티 프로젝트 2개 이상 실행하기
  12. 2017.08.19 An asset is marked with HideFlags.DontSave but is included in the build 에러
  13. 2017.08.06 [Android] 환경 변수 세팅
  14. 2017.07.11 [tk2d] 스프라이트 애니메이션 안나오는 문제
  15. 2017.07.02 누가 이클립스 로그캣 안보일 때
  16. 2017.02.06 [MySql] 이상한 데이터 Replace
  17. 2017.02.03 [Android] TextView Dip 코드로 쓰기
  18. 2017.01.25 [이클립스] Jave 소스 줄맞춤
  19. 2016.06.29 phpMyAdmin 디비 데이터 교체하기
  20. 2016.05.30 [MySql] 컬럼의 값이 5개 이상인 것들 중 랜덤으로 1개 불러오기
  21. 2016.01.15 [Java] 소수점 첫째자리가 0인경우 표시하지 않기 (2)
  22. 2016.01.12 [Android] 다이얼로그에서 EditText 키보드 바로 띄우기
  23. 2015.09.19 [SQLite] 특정 컬럼의 자리수를 기준으로 불러온 데이터의 중복값 제거
  24. 2015.09.13 [Android] EditText 힌트(hint)가 보이지 않을 때
  25. 2015.09.10 [Android] Widget을 불러올 수 없습니다 버그
  26. 2015.08.17 gfood
  27. 2015.07.14 [Android] EditText 한번 클릭하면 전체 글 선택되게 하기 (3)
  28. 2015.07.07 [Android 최적화] GPU 오버드로 디버깅을 통한 최적화
  29. 2015.07.07 [Android 최적화] HashMap 보다 효율 좋은 SparseArray
  30. 2015.07.02 [Android] EditText 최대 글자수 Code로 설정
2017.11.29 12:59

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


sun/misc/BASE64Encoder


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


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


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

Posted by 그린블로그 DEV그린
2017.10.23 05:45

열복사


커서 지정한 곳으로 부터 쉬프트 + 알트 지정하고 싶은 곳 클릭



한줄복사


복사하고 싶은 행에 커서 놓고 아무것도 선택하지 않은 채로 컨트롤+C , 컨트롤+V

Posted by 그린블로그 DEV그린
2017.09.20 04:48

float moveFloat += Time.deltaTime * 2.5f;

this.transform.position = Vector3.Lerp(_target.position, _skillPoint.position, moveFloat);


onUpdate에서 실행한다.


_target.position가 시작 지점.


_skillPoint.position가 도착 지점


세번째는 0~1사이값이다. (0이면 시작위치, 1이면 도착위치, 0.5면 중간위치를 반환.

Posted by 그린블로그 DEV그린
2017.09.20 04:39

r은 Red


g는 Green


b는 Blue


a는 Alpha


tk2dSprite sprite = this.gameObject.GetComponent<tk2dSprite>(); 
sprite.color = new Color(r,g,b,a);



투명하게 만들고 싶다면 a를 0으로 주면 된다.


Posted by 그린블로그 DEV그린
2017.09.18 03:55

.activeSelf 로 확인한다.




예시)


if(gameObject.activeSelf == true)  { 
     //gameObject가 setActive(true) 상태일 경우
}else if(gameObject.activeSelf == false){ 
     //gameObject가 setActive(false) 상태일 경우
}



Posted by 그린블로그 DEV그린
2017.09.17 06:41

자식이 있는 오브젝트를 인스턴스화해서 동적으로 생성하고 삭제하려고


Destroy(this); 를 썼다.


그런데 실제 게임에서 삭제가 되지 않았다.


Destroy(this.gameObject); 를 쓰자 사라졌다.

Posted by 그린블로그 DEV그린
2017.09.09 02:09

유니티에서 String과 integer는 형변환이 필요하다.


UILabel에 int를 붙일 수는 없고 String형으로 변환한 후 붙여야 하는 것.



int a = 5

string s = a.ToString();



String s = "777";

int a = int.Parse(s);

Posted by 그린블로그 DEV그린
2017.09.06 06:11

유니티에서 폰에 빌드 후 아무것도 하지 않으면 일정 시간 후 꺼지는 현상이 발생했다.


이것은 메인 스크립트의 Start()에 


Screen.sleepTimeout = SleepTimeout.NeverSleep;


해당 소스를 넣으면 된다.

Posted by 그린블로그 DEV그린
2017.09.03 23:01

디비에서 중복 값을 가지고 있는 필드를 조회하기위해 아래의 쿼리를 입력합니다.


SELECT * FROM `테이블명` GROUP BY 필드 HAVING COUNT(필드) > 1


이 값은 같은 필드가 2개 이상인 값을 보여줍니다.



예) SELECT * FROM `Coupon` GROUP BY Code HAVING COUNT(Code) > 1

Posted by 그린블로그 DEV그린
2017.08.25 21:22

이클립스에서 비주얼 스튜디오로 넘어오니까


주석 처리하는게 헷갈리더군요.


주석처리 : Ctr + K + C

주석해제 : Ctrl + K + U

Posted by 그린블로그 DEV그린
2017.08.21 03:13

1)  유니티 실행 아이콘 우클릭(또는 알트 누르고 더블 클릭) - 속성 - 대상에


2) '-projectPath' 추가    (예:""C:\Program Files\Unity\Editor\Unity.exe" -projectPath) 




3) '확인' 후 실행하여 프로젝트를 열면 멀티로 프로젝트가 실행된다.


Posted by 그린블로그 DEV그린
2017.08.19 05:56

유니티 프로젝트를 apk로 빌드하던 도중


An asset is marked with HideFlags.DontSave but is included in the build: Asset: 'Library/unity editor resources' (You are probably referencing internal Unity data in your build.) UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()


이런 에러가 떴다.


왜 그런가 했더니 UI Label에 Lucida Grande 폰트를 썼기 때문.


이 폰트는 빌드가 되지 않는듯 하다.

Posted by 그린블로그 DEV그린
2017.08.06 01:19

환경변수 세팅



내 PC의 오른쪽 마우스 클릭 - 고급 - 환경 변수



Path

C:\Users\Admin\android-sdks\tools

%JAVA_HOME%\bin


CLASSPATH

.;%JAVA_HOME%\lib\tools.jar


JAVA_HOME

C:\Program Files\Java\jdk1.8.0_111




세팅 후 cmd로 들어가서 java -version을 쳐서 제대로 나오는지 확인 한다.

Posted by 그린블로그 DEV그린
2017.07.11 04:13

에셋에서 스프라이트를 복사하면 실제로 적용되지 않는다.


유닛의 TK 2D Sprite Animator에서 나타나지 않는 문제가 있다.


그러므로 따로 Create - tk2d - sprite animation으로 만들고 직접 해야 실제로 적용이 된다.

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.06 19:36

최근 csv 데이터를 디비로 옮겼는데 


이상한 공백값이 함께 저장되는 문제가 발생하였다.





SELECT * FROM Coupon WHERE Code LIKE '% %';


이런식으로 공백을 조회 후



UPDATE Coupon SET Code = REPLACE(Code, ' ', '')



해당 공백 값을 없애준다.

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.06.29 00:09


디비에 넣어진 데이터를 csv 파일로 교체하고 싶을 경우 해당 스샷과 같이 처리 합니다.



1. Number of records to skip from start를 1로 맞춥니다. 첫번째 줄은 데이터가 아니니까.


2. CSV using LOAD DATA에 체크합니다.


3. Replace table data with file에 체크합니다. 데이터를 바꿔야하니까요.


4. Ignore duplicate rows에 체크합니다. 중복 되는 로우를 무시하는거죠.


5. Fields terminated by가 기본적으로 ; 로 되어있습니다.

 하지만 ,가 맞기 때문에 ,로 바꿔 준후 Go 버튼을 눌러주면 끗!

Posted by 그린블로그 DEV그린
2016.05.30 03:16

예를 들어 A라는 테이블에 있는 값들중


한 아이디를 랜덤으로 불러와야 되는데 


만약 데이터를 5개 이상가지고 있지 않은 아이디를 불러올 경우 에러가 나게 되는 경우라면


아래의 쿼리로 요청하면 됩니다.




SELECT ID FROM A GROUP BY ID HAVING 5 < COUNT(ID) order by rand() limit 1


A 테이블에서 ID로 된 데이터가 5개 이상 가지고 있는 ID를 랜덤으로 1개 불러오는 것이죠.



Posted by 그린블로그 DEV그린
2016.01.15 01:08

소수점을 표현하는 경우


Double을 쓸 때가 많습니다.


그런데 좀 애매할 때가 있죠.


1과 1.5가 있을 때


Double을 써버리면


1.0과 1.5가 됩니다.


이럴 때 1.0은 보기가 안좋죠.


아래의 코드를 통해 다듬어봅시다.


#은 0일경우 표현하지 않습니다.


 DecimalFormat df=new DecimalFormat("#.##");

 public String formatD(double number) {

      return df.format(number);

 }



Double x = 1.0;


인 경우


String result = formatD(x);


이렇게 해주면


결과값은


"1" 로 찍힙니다.

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.19 17:41

특정 컬럼의 중복값 제외는 매우 쉽습니다.


 SELECT Distinct A컬럼 from 테이블


이렇게만 해주면 중복된 값이 제거된 A컬럼의 열값만 나오죠.


그런데 날짜의 중복을 제거하고 싶다고 칩시다.


yyyyMMdd라면 괜찮습니다.


그런데 yyyyMMddHHmmss 라면?!


그럼 중복이 될 수가 없겠죠.


그럴 땐 substr을 씁니다. substring의 약자죠.


substr(컬럼값, 시작자리, 끝자리) 이런식으로 세팅합니다.


그런데 sqlite는 독특하게도 첫글자를 불러오려면 0이 아니라 1을 넣어야 합니다. 신기하죠? ^^


그럼 날짜를 불러오는데 시분초를 제외한 날짜중, 겹치는 날짜만 제거하여 쿼리를 날리면..


 SELECT Distinct substr(date,1,8) FROM report order by date desc


이렇게 하면 됩니다. ^^ order by는 보너스~


검색해보는데 이런 포스팅이 잘 없더라구요. 도움 되시길 바랍니다. ^^



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.08.17 14:49
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
"하하하하호호"
-Json시작-{"result":[{"rank":1,"name":"여신의 탑 RPG","detail":"지금까지 만나 본 적 없는 스파클링 도트 액션 RPG!","package":"com.sword.goodness","imgUrl":"https://t1.daumcdn.net/cfile/tistory/246FC635589FE37702","type":"N","on":1,"imgAll":"a","update":-1,"ad":0}, {"rank":2,"name":"커플디데이","detail":"다시 태어난 커플 디데이!","package":"com.dday.couple","imgUrl":"https://t1.daumcdn.net/cfile/tistory/990803335A07640703","type":"H","on":1,"imgAll":"a","update":-1,"ad":0}, {"rank":3,"name":"여신의 탑 RPG","detail":"지금까지 만나 본 적 없는 스파클링 도트 액션 RPG!","package":"com.sword.goodness","imgUrl":"https://t1.daumcdn.net/cfile/tistory/25607E3D57ED7B7837","type":"B","on":1,"imgAll":"a","update":-1,"ad":0}, {"rank":4,"name":"아이돌 키우기","detail":"나만의 아이돌을 키워보세요!","package":"com.idol.manager","imgUrl":"https://t1.daumcdn.net/cfile/tistory/2143B94357C7B73421","type":"B","on":1,"imgAll":"a","update":-1,"ad":0}, {"rank":5,"name":"[EVENT] 미미샵","detail":"국내 최다 뷰티샵정보 제공!","package":"mimishop.yanji.com.mimishop","imgUrl":"https://t1.daumcdn.net/cfile/tistory/2765103A57A0D13C27","type":"H","on":1,"imgAll":"a","update":1.0,"ad":2}, {"rank":6,"name":"방탄소년단 빙의글","detail":"독자와 작가가 함께 만들어가는 방탄소년단 빙의글!","package":"com.appFactory.bts","imgUrl":"https://t1.daumcdn.net/cfile/tistory/244658455778E67030","type":"H","on":1,"imgAll":"https://t1.daumcdn.net/cfile/tistory/01598A4651924BC519","update":-1,"ad":0}, {"rank":7,"name":"여신의 탑 RPG","detail":"지금까지 만나 본 적 없는 스파클링 도트 액션 RPG^","package":"com.sword.goodness","imgUrl":"https://t1.daumcdn.net/cfile/tistory/266ABE41562E5DEC11","type":"B","on":2,"imgAll":"a","update":5.6,"ad":1}, {"rank":8,"name":"여신의 탑 RPG","detail":"지금까지 만나 본 적 없는 스파클링 도트 액션 RPG!","package":"com.sword.goodness","imgUrl":"https://t1.daumcdn.net/cfile/tistory/246FC635589FE37702","type":"B","on":0,"imgAll":"a","update":7.7,"ad":1}, {"rank":9,"name":"여신의 탑 RPG","detail":"지금까지 만나 본 적 없는 스파클링 도트 액션 RPG!","package":"com.sword.goodness","imgUrl":"https://t1.daumcdn.net/cfile/tistory/225CEE40562E5DC423","type":"G","on":1,"imgAll":"https://t1.daumcdn.net/cfile/tistory/01598A4651924BC519","update":-1,"ad":0}, {"rank":10,"name":"여신의 탑 RPG","detail":"지금까지 만나 본 적 없는 스파클링 도트 액션 RPG면!","package":"com.sword.goodness","imgUrl":"https://t1.daumcdn.net/cfile/tistory/2172D343540BDC0C22","type":"","on":1,"imgAll":"a","update":4.3,"ad":2}, {"rank":11,"name":"여신의 탑 RPG","detail":"지금까지 만나 본 적 없는 스파클링 도트 액션 RPG!","package":"com.sword.goodness","imgUrl":"https://t1.daumcdn.net/cfile/tistory/2131F3445325C7EC12","type":"","on":1,"imgAll":"a","update":3.3,"ad":0}, {"rank":12,"name":"여신의 탑 RPG (개진정)","detail":"지금까지 만나 본 적 없는 스파클링 도트 액션 RPG!","package":"com.sword.goodness","imgUrl":"https://t1.daumcdn.net/cfile/tistory/246FC635589FE37702","type":"N","on":1,"imgAll":"a","update":-1,"ad":0}, {"rank":13,"name":"여신의 탑 RPG","detail":"지금까지 만나 본 적 없는 스파클링 도트 액션 RPG!","package":"com.sword.goodness","imgUrl":"https://t1.daumcdn.net/cfile/tistory/23498C4151A62E4B26","type":" ","on":1,"imgAll":"a","update":-1,"ad":0}, {"rank":14,"name":"여신의 탑 RPG","detail":"지금까지 만나 본 적 없는 스파클링 도트 액션 RPG!","package":"com.sword.goodness","imgUrl":"https://t1.daumcdn.net/cfile/tistory/254FC745562E5D2208","type":"","on":0,"imgAll":"https://t1.daumcdn.net/cfile/tistory/2251313F51950D441F","update":9.6,"ad":1}, {"rank":15,"name":"여신의 탑 RPG","detail":"지금까지 만나 본 적 없는 스파클링 도트 액션 RPG","package":"com.sword.goodness","imgUrl":"https://t1.daumcdn.net/cfile/tistory/246FC635589FE37702","type":"","on":1,"imgAll":"a","update":1,"ad":0}, {"rank":-1,"name":"하단광고","detail":"http://goo.gl/2VtGRO","package":"http://goo.gl/2VtGRO","imgUrl":"https://t1.daumcdn.net/cfile/tistory/2606174756A0DDAB1B","type":" ","on":1,"imgAll":"https://t1.daumcdn.net/cfile/tistory/272A90495510D2C501","update":-1,"ad":0}, {"rank":-2,"name":"여신의 탑 RPG","detail":"지금까지 만나 본 적 없는 스파클링 도트 액션 RPG!","package":"com.sword.goodness","imgUrl":"https://t1.daumcdn.net/cfile/tistory/246FC635589FE37702","type":" ","on":1,"imgAll":"a","update":-1,"ad":0}]}-Json끝


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그린