본문 바로가기

android

[ Android ] Dialog 위치 이동 this.pd = new ProgressDialog(this); LayoutParams params = this.pd.getWindow().getAttributes(); params.y = -80; this.pd.getWindow().setAttributes(params); this.pd.setCancelable(false); this.pd.setIndeterminate(true); this.pd.setMessage(getResources().getString(R.string.str_loading)); this.pd.show(); 위 세 줄로 변경 할 수 있습니다. Dialog의 창 속성을 받아 그것을 변경하는 겁니다. 이것 외에도 getWindow().setGravity(Gravity.BOTTOM); .. 더보기
[ Android ] GridView를 사용할 때 getView에 대한 이해! 안녕하세요. 제가 이미지를 출력하는 GridView를 하다가 느낀 점을 적어볼까 합니다. 지금까지 전 GridView를 사용할 때 언제나, getView에 이미지만 출력해주면 다 되는거 아닌가?? 하는 식으로 BaseAdapter를 이용하여 마음 대로 View등을 리턴 시켰죠. 하지만, 제가 코딩을 해본 경험상! 무작정 마음대로 넘기는 형식이 아니더라구요. 특히, Scroll사용 시 이미지가 겹치거나 position에 맞지 않는 이미지가 나올 경우가 많아 Scroll이벤트와 함께 index를 억지로 맞춘 적이 많았습니다. 과연 이렇게 복잡하게 GridView사용하게 구글이 만들었을까요? 소스 두개를 보여드릴께요. public View getView(int position, View convertView,.. 더보기
[ Android ] TextView에 어이 없는.. TextView에 한글을 출력할 때 그냥 입력 하면 아무것도 보이지가 않더라구요. 끝에 스페이스를 꼭 넣으세요. Ex> "이름 " "한글 " "한국어 " 이런 식으로요^^ 참.. 어이가 없어서..ㅋ 더보기
[ Android ] 프레임 속도 조절. 쓰레드를 조절할 때, postDelay를 이용해서 프레임 속도를 조절하는데요. Opengl을 사용할 경우 라이브러리 자체내에서 스레드를 돌리기 때문에 프레임 속도를 조절하기가 힘든 경우가 있었습니다. 그래서 이같은 소스가를 사용하는데요. private static long targetFrameInterval = 1000L / 30L; // 프레임 속도 30 private long frame = 30L; // 스레드 콜백 함수 (무한 반복 하는 함수) public synchronized void onDrawFrame(GL10 gl) { // 프레임 처음 시간 설정 long frameStartTime = System.currentTimeMillis(); //.. 뭔가 뿌려주기 위한 소스 등등. // 프레임 .. 더보기
[ Android ] 비트맵에 이미지나 뭔가를 그릴 때 뜨는 에러! java.lang.IllegalStateException: Immutable bitmap passed to Canvas constructor Bitmap bitmap = BitmapFactory.decodeFile(..); Canvas canvas = new Canvas(bitmap); canvas.save(); canvas.drawbitmap(...); ... canvas.restore(); 위 와 같은 형식에 소스에서 디버깅을 하면 회색 네모상자의 에러가 나옵니다. BitmapFactory에서 불러온 이미지는 수정이 불가능 하다고 하네요. 크기나 뭐 옵션 같은 것은 줄 수 있겠지만요^^ 그래서 똑같은 비트맵을 복사함으로써 해결이 됩니다. Bitmap bitmap = BitmapFactory.decod.. 더보기
[Android NDK] NDK Hello 실행하기 출처 : http://micropilot.tistory.com/1522 위 링크로 가시면 문자열 값을 출력하는 것 까지 자세한 정보가 있습니다. 그대로 따라하시면 되는데요. 사이사이에 제가 겪은 문제점들을 적어 놀까 합니다. 1. ../ndk-build 명령어를 쳤더니 위와 같은 에러가 났을 경우. 혹시, android ndk 가 Program files 밑이나 띄어쓰기가 있는 이름 폴더의 하위 폴더 일 경우 인지 확인해보세요. 절대! cygwin 설치에 문제가 아닙니다. 가장 안전한 방법! c:\android-ndk-xxxx로 해놓으시는게 가장 좋을 듯! 2. cygwin 설치 시, ftp://ftp.kaist.ac.kr이 안보일 경우 그냥 아무거나 하셔도 됩니다. 한국 사이트라 다운로드 속도가 빠른 .. 더보기
[Android] Live Wallpaper 미리보기인지 아닌지 확인 WallpaperService.Engine의 isPreview() 함수로 확인이 가능합니다. if(isPreview()){ Log.d("DEBUG","현재 미리보기 실행 중입니다."); }else{ Log.d("DEBUG","실제 배경화면이 실행 중입니다."); } 출처: http://developer.android.com/reference/android/service/wallpaper/WallpaperService.Engine.html 더보기
[Android] 배경화면에 이미지를 표현할 때 참고사항 배경화면에 이미지를 출력할 때, offset까지 생각을 해서 화면보다 좌우를 더 크게할 경우가 많으시죠. 그럴 경우, 이미지가 커지고 출력할 때 과부하가 생기기도 합니다. 즉, 큰 이미지의 딱 화면 크기 정도만 가져와서 표현을 하게 되면, 과부하가 생길 이유가 없겠죠. 하늘색 부분만 보이도록 하는 것이지요! 소스는 다음과 같습니다. RectF rect = new RectF(0, 0, screenSizeWidth, screenSizeHeight); // 네모 상자 크기 지정 Matrix matrix = new Matrix(); matrix.mapRect(rect); matrix.setTranslate(mOffsetX, 0); // offset설정 mainCanvas.drawBitmap(mainBmp,mat.. 더보기