본문 바로가기

개발/android43

큰 배경이미지 사용시 OutOfMemoryError의 확실한 해결법 안드로이드 앱을 만들때 배경이미지를 넣어야 하는 경우 OutOfMemoryError에 직면하는 경우가 많다.. 특히 사이즈가 큰 배경이미지 일수록... 자주 발생한다... 즉, OutOfMemoryError는 이름처럼 이미지를 로딩할때 메모리가 부족해서 발생하는것이다... 이럴경우 그원인이 되는 이미지 사이즈 자체를 줄이거나 로딩할때 아래와 같이 사이즈를 줄여서 불러오면 일단 해결은 된다. BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 2; Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.opening, options); .. 2013. 10. 4.
단말기 해상도에 관계없이 항상 같은 크기로 이미지를 보여주고 싶을때 안드로이드 앱을 만들다 보면 단말기마다 해상도가 달라 이미지 크기나 비율이 제멋대로 일때가 있다. 예를 들면 480x800 와 1080x1920에서 imageview를 100x80px로 잡으면 상대적으로 480x800보다 1080x1920에서 작게 나온다. 그래서 대부분 px 대신 dp로 하게 된다. dp로 하면 해상도에 따라 자동으로 크기를 보정해 주기 때문이다. 하지만 dp도 정확히 해상도에 비례해서 보정해 주지는 않는다.왜냐하면 dp는 Density(인치당 픽셀수) 에 영향을 받기 때문이다 그렇다면 만약 해상도와 Density에 관계없이 항상 같은 크기로 이미지를 보여주고 싶을때는 어떻게 해야 하는가? 내가 가장 많이 사용하는 방법은 이렇다. DisplayMetrics metrics = new Di.. 2013. 8. 29.
페이스북앱이 설치되어 있을때 페이스북 api로 로그인이 안되는 문제 android facebook api(sdk)로 로그인 작업을 하다 보면 발생하는 치명적인 문제가 있다 폰안에 페이스북앱이 설치되어 있지 않을때는 로그인 화면으로 웹뷰가 띄어지면서 잘 로그인된다. 하지만 페이스북앱이 설치되어 있을때에는 웹뷰가 아닌 페이스북앱이 실행되면서 로그인이 이루어지는데 여기서 버그인지 아님 원래 그런건지 로그인이 계속 실패한다. 처음에는 내가 잘못 코딩한지 알았는데 예제를 돌려봐도 똑같은 현상이 발생했다. 그래서 몇일동안 삽질끝에 해결책을 찾아내었다^^ 해결책은 역시 예제안에 숨어있었다ㅎㅎ 예제중에 SwitchUserSample이라는 프로젝트가 있는데이 예제에서 로그인 유저를 바꿀때에는 항상 로그인 화면 웹뷰가 뜨면서 잘되는것이다ㅎㅎ이부분을 집중 분석하여 아래와 같은 해결코드를 작.. 2013. 8. 23.