Android 80

[Android] Hexagon Image 만들기.

hexagon이미지를 만드는 방법입니다. 방법은 간단히.. 이미지의 중심점을 잡고, 반지름을 구한 뒤 중심점에서 각 0도, 60도, 120도, 180도, 240도, 360도 위치의 점을 잇는 선을 그은 뒤 그에 해당하는 이미지만 뽑아내느 방법입니다.이걸 활용하면 android에서 사용할 HexagonImageView도 만들어 볼 수 있겠죠. 코드는 아래와 같습니다. private Bitmap getHexagonImage(Bitmap toTransform) { Bitmap output = Bitmap.createBitmap(toTransform.getWidth(), toTransform.getHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(o..

Android 2014.12.23

[Android] Excution failed for task ':app:preDexDebug' troubleshooting.

Android 개발할 때 eclipse를 통하여 개발을 많이 했는데, AndroidStudio를 통하여 개발을 해보게 되었습니다.그중에 Build상태에서는 오류가 나오진 않았지만 Runtime시에 Excution failed for task ':app:preDexDebug'이와 같은 오류를 보게 되었습니다. Build는 되었는데 왜 Runtime시에 나타날까에 대한 것도 찾아 보았을 때 추가해준 Library중 하나가 AndroidLibrary가 아닌 Java LIbrary로 된 것이 있었습니다. 그리고 개발중에 사용된 java version이 Java SE 8u25버전을 사용했더니 문제가 나타났습니다. gradle빌드에 1.6이라는 옵션을 주었지만 해결되지 않았죠 ㅡㅡ.혹시나 하는 마음에 Java SE..

Android 2014.10.17

[Android] MediaCodec 을 이용한 player 만들기.

안드로이드에서 음악을 재생할 때 가장 많이 사용하는 것으 MediaPlayer 입니다. 사용 방법도 간단하고 Added in API level 1 이 알려주다 싶이 Media 재생을 위한 api로는 가장 오래되고 많이 사용을 하죠. 그럼 Wave 파일에 대해서는 어떻게 재생을 할까요??? AudioTrack이라는 api가 존재합니다. pcm 데이터를 재생시켜줄 수 있는 api인데, 사실 mp3나 aac 같은 파일을 재생하기 위해서 Decoder로 mp3나 aac같은 파일을 다시 pcm데이터인 wave 파일로 만들어야 AudioTrack으로 재생시킬 수 있습니다. 그럼 mp3나 aac와 같은 파일을 wave로의 Decoder는 api로 존재를 하느냐?.. API level 16인 Jelly Bean(And..

Android 2014.08.19

[Android] Android Library project를 ant로 build 시 renderscript.opt.level Troubleshooting

Android LIbrary 프로젝트를 Library add 해서 사용할 수도 있지만, ant jar 를 통한 jar파일로 library를 빌드해서 사용할 수도 있습니다. 단순히 ant jar 만 해주면 jar 파일로 빌드를 해주는데... library project를 ant jar 하게 도면BUILD FAILEDD:\16.SDK\Android\android-sdk-windows\tools\ant\build.xml:653: The following error occurred while executing this line:D:\16.SDK\Android\android-sdk-windows\tools\ant\build.xml:679: '${renderscript.opt.level}' is not a perm..

Android 2014.07.21

OutOfMemoryError: bitmap size exceeds VM budget

안드로이드 앱을 개발하다보면 logcat에서 많이 접하게 되는 오류중에 하나가 java.lang.OutOfMemoryError: bitmap size exceeds VM budget이 오류이지 않을 까 합니다. 쉽게는 메모리 오류. 앱에서 사용할 수 있는 메모리보다 bitmap을 사용하는데 메모리를 많이 사용하게 되어서 나타나는 오류입니다. 예를 들어서 메모리를 20mb를 사용할 수 있는데 bitmap을 로드할 때 사용할 사용한 메모리가 20mb를 넘어선 것이지요. 그럼 이 상황을 해결할 방법은 어떤게 있을까요?? 1. sampling option 및 서버에서의 작은 이미지 내려주기.[BitmapFactory.Options.inSampleSize]inSampleSize 옵션은, 애초에 decode를 할 ..

Android 2014.06.16

[Android]AlarmManager를 이용하여 특정 요일, 시간 마다 알람 울리기.

특정 요일을 선택했으면 선택한 요일에 대해서만 알람을 울리고 선택된 요일이 없으면 설정된 시간에 한번만 알람이 울리도록 합니다. 전체적인 코드는 블로그에 올려두기 보다는 그냥 했던 방법을 적어 둘려고 합니다. //알람 등록 및 취소 private void registAlarm() { cancelAlarm(); boolean[] week = { false, mTextRepeatSun.isSelected(), mTextRepeatMon.isSelected(), mTextRepeatTue.isSelected(), mTextRepeatWed.isSelected(), mTextRepeatThu.isSelected(), mTextRepeatFri.isSelected(), mTextRepeatSat.isSelecte..

Android 2014.06.02

[Android] Update single item in ListView

Android 의 ListView에서 하나의 Item이 변경이 되면 해당 Item에 대한 dataset을 변경 후 화면에 보이는 내용을 변경해 주어야만 합니다. 그리고 나서 보통 adapter에 있는 notifyDataSetChanged()라는 메소드를 호출하여 화면에 보이는 내용을 변경합니다. 하지만 이 방법에는 작은 단점이 있습니다. adapter에 있는 notifyDataSetChanged()메소드를 호출하게 되면 화면에 보이는 모든 ListView의 Item에 대하여 화며을 변경하게 됩니다. 즉 화면에 ListView의 Item이 5개가 있다면 5개 전부 다 다시 그려지게 됩니다. adapter에 있는 data중 하나만 변경되었지만 adapter에서는 어떤 item의 dataset이 변경되었는지 ..

Android 2014.05.23