안드로이드 특성상 어플당 제공되는 힙메로리가 적기 때문에 Bitmap과 같은 메모리를 많이 차지하는 것을 로드 하다보면 Out of Memory 가 발생하게 된다. 

그리하여 각각의 서버에서 Bitmap 이미지를 받아올 때 Bitmap 생성 전에 미리 사이즈를 알아 오는 방법이다.


            BitmapFactory.Options o = new BitmapFactory.Options();
            o.inJustDecodeBounds = true;
            BitmapFactory.decodeStream(new FileInputStream(f), null, o); 
            int width_tmp = o.outWidth, height_tmp = o.outHeight; 


BitmapFactory.Options.inJustDecodeBounds  이 값에 true값을 주게 되면 가능하다.
Posted by junho87
TextView에 들어가는 문장이 일정 길이 이상으로 늘어나면 알아서 옆으로 흘러가는 효과를 주기 위해서는
간단하게  

android:ellipsize="marquee"

이런식으로 줄 수 있다. 이때 꼭  

android:singleLine="true"

로 해주어야 한다. 그리고 이걸로 끝이 아니다. 이 두가지 옵션을 주었다고 해서 효과가 나타나지 않으며
소스상에서 해당 TextView에  텍스트뷰.setSelected(true); 해주어야 효과가 나타난다.
 
Posted by junho87

얼마 전 ViewPager를 이용한 페이징 기법을 사용 한 적이 있습니다.
그때 ViewPager 안에서 FragmentPagerAdapter를 사용하여 Fragment를 표현 했습니다.

하지만 문제가 3개의 page가 있다면 1번에서 이동하여 3번으로 가게되면 1번 Fragment는 초기화가
되어 해당 View를 소멸 시키는 겁니다. 반대로 1번으로 이동해서 View가 재생성 되면 3번 Fragment가
소멸되었습니다. 제가 잘못 사용한 것인지 고민 하던 차에 시간이 없는 관계로 adapter 쪽 API를 뒤져보니

        @Override
        public void destroyItem(View container, int position, Object object) {
            // TODO Auto-generated method stub
            super.destroyItem(container, position, object);
        }

이런 오버라이드 메소드가 존재 했습니다. 저기서 super.destroyItem(container, position, object); 을 지워주시면 됩니다.

아직 디벨로퍼 레퍼런스에는 등록되지 않은 것 같습니다. 이클립스 플러그인을 이용해서 찾은겁니다.
태블릿 개발에 들어가면 Fragment 기술을 많이 사용할 텐데 좀더 공부가 필요한것 같네요
 
Posted by junho87