본문 바로가기

Java

[Java] 최대 공약수 구하는 함수 public static int gcd(int a, int b) { while (b != 0) { int temp = a % b; a = b; b = temp; } return Math.abs(a); } 더보기
[Java] 소숫점 자리 지정하기 public static Double decimalScale(String decimal,int loc){ BigDecimal bd = new BigDecimal(decimal); BigDecimal result; result = bd.setScale(loc,BigDecimal.ROUND_HALF_EVEN); return result.doubleValue(); } 더보기
[Android] View Background를 Rounded corner 형태로 반영 RecyclerView나 ListView와 같은 여러 View가 묶어서 표현해야 하는 View에서 Corner 부분만 라운드를 시키고자 할때,가장 쉽게 생각할 수 있는 부분이 Background에 Rounded된 이미지를 넣는 것으로 어느정도 해결이 된다. 하지만, 이 외에도 한가지 더 좋은 방법이 있다.Rounded Corner 형태의 Drawable을 xml로 그리는 것이다.그게 아래 소스이다. 위 속성에서 corners 라는 값을 가지고 Corner에 Rounding 정도를 체크 할 수 있다. ## 위 형태로도 문제없이 동작이 가능 하면 좋지만, RecyclerView 나 ListView 등에서 row에 있는 View가 튀어 나오는 경우가 있습니다. 그럴 경우 아래와 같이 clip 을 한번 해줘보세.. 더보기
[Android] TextSize에서 sp와 dp를 사용할 때! TextSize를 설정할 때, 항상 전 sp를 사용 했습니다. sp는 글자 크기를 정의해주는 수치라고 알고 있었기 때문입니다. 하지만 여기서 꼭! 알고 가셔야 할 점이 있습니다. sp는 안드로이드 시스템 글자 크기에 적용 된다!!! 위 말이 무슨 말 이냐 하면, 안드로이드 설정 -> 디스플레이 -> 글자크기 로 이동을 하면 작게 부터 아주 크게 까지 앱 외적으로 글자 크기를 조절 할 수 있습니다. (연령층이 높으신 분을 위해 만들어 놓은 걸로 알고 있습니다.) 이 부분을 변경할 경우! sp로 텍스트 사이즈가 정의 되어 있으면, 그 설정에 따라 앱 텍스트도 커져 버려 UI가 깨저버리는 현상이 발생 합니다. 만약, 그 글자크기에 따라 앱 UI를 변경하시는 분들은 신경쓰지 않으셔도 됩니다. 저 같이 글자 크기.. 더보기
[ JAVA ] try catch finally 사용 시 문제점. try{// .. 예외가 발생할 가능성이 있는 구문!}catch(Exception e){// .. 예외 발생시 처리 구문!}finally{// .. 꼭 실행해야하는 구문!} 전 코딩을 할 때 위와 같이 이해 하고 코딩을 하고 있습니다.하지만 여기서 몇가지 생각해야 할 게 있더라구요!1. try 안에 return.2. catch 안에 return.3. finally 안에 return. 한번 생각해보세요....... 결론.1. try 안에 return문 => return은 정상 동작으로 종료가 되었다는 의미이므로 finally 구문을 거쳐 정상 종료2. catch 안에 return 문 => catch 안에 return문은.. 거의 쓸일이 없을듯... 똑같이 finally 구문을 거쳐 정상 종료.3. fina.. 더보기
[ Android ] java.util.concurrentmodificationexception 먼저, 지금 제가 적는 내용은 경험을 토대로 한 내용이므로, 이론적으로 말씀 드리기엔 실력이 부족하다는 점을 염두에 두시면 감사하겠습니다. 먼가 잘못된 점이 있다고 생각하시는 분은 주저말고 댓글 달아주시면 성심 성의 껏 고치도록 하겠습니다. 위 Exception은 List나 Map 류등을 사용할 때 발생한다. 저는 대부분 리스트나 Map을 사용할 때 당연 , index 변수를 만들어서 반복문을 돌리거나, 새로운 for문을 이용하여 편안하게 돌리기도 한다. 문제는, index변수를 사용했을 경우! 상황 ) Main Thread를 돌리는 상태에서 별개의 AsyncTask를 돌렸다. AsyncTask에서 만들어진 클래스를 MainThread에서 List나 Map에 저장을 시킨다. private Map mapL.. 더보기
[ Android ] 베지어(Bezier) 곡선 그리기 소프트웨어 쪽만 공부하던 저이기에 곡선 움직임을 그리기위해 열심히 구글링을 해봐도, 간단한 곡선하나 그리기가 힘들고 어려웠습니다. 열심히 조사하고, 읽어보고, 거의 한 일주일간 알아봤던 것 같네요.!!! 결국!!! 베지어 곡선을 그리는데 성공을 했습니다. 역시 포기 하지 않고, 읽어보고 실험을 해보니 어느 순간 머리 속으로 들어오더라구요. 자.. 뻘소리 그만하고, 소스를 보기 전에 베지어 곡선을 사용할 때 꼭 알아두어야 할 것이 있습니다. 1. 베지어 곡선은 여러 포인트로 곡선을 그린다. 적어도 포인트 3개 정도는 되야 곡선이 만들어집니다. 2. 베지어 곡선 공식에서 'u'라는 변수를 사용하는데요. 이 변수는 0부터 1까지만 지정합니다. (소스에서는 mu) 0은 곡선의 시작점을 나타내고, 1은 곡선의 끝.. 더보기
[ Android ] 최대 공약수 구하기 public static int gcd(int a, int b) { while (b != 0) { int temp = a % b; a = b; b = temp; } return Math.abs(a); } 더보기