android listview shadow

remove shadow in listview. (Quite annoying shadow if scrolls within contents)

android:fadingEdge="none"

or 

listView.setVerticalFadingEdgeEnabled(false);

안드로이드 해상도 android supporting different resolution

현재 국내에 풀린 1세대 안드로이드는 

480 * 800 갤럭시S1, S2, 기타 그 시절에 풀린 것들은 전부 hdpi

그 다음에 풀린 베가 레이서2, 갤럭시 S2 HD LTE 등, 갤럭시 S3 등. 최신 LTE 폰들은 대부분

720 * 1280 이며, OS는 ICS 가 대부분이다. ( xhdpi)

중간에  줌, 갤럭시 탭 10.1 이 나왔는데, OS 가 HoneyComb 이며, 팔린 수량이 얼마 안되서 개발시에는 고려 안해도 됨. 가끔 태블릿도 되게끔 앱 만들어 달라는 고객도 있는데, 대략 난감. 일단 그런 태블릿들은 mdpi 에 1280*800 임.

여기서, LG 에서 옵티머스 계열의 이상한 해상도 768 * 1024 를 만들었는데, 판매 수량 얼마 안되서 역시 패스.

800 * 1280 (xhdpi) 는 갤럭시 노트1 이 있는데, 단일 기종으로 판매가 꽤 많이 되었으므로, 일단 제작시에는 고려. 희안하게도 갤럭시 노트2는 720*1280 이다. 800*1280 폰 기종은 갤럭시 노트1이 마지막이 될 듯.

2013년 4월 쯤에는 1920*1080 폰들이 풀린다는데,  아직 sdk에도 없는 해상도는 이번에는 어떤 dpi라는 이름을 붙일지… 쩝… 안드로이드 해상도 너무 싫다.

안 그래도 넥서스 7 은 tvdpi라는 이름을 달고 나왔던데….

http://developer.android.com/guide/practices/screens_support.html#qualifiers 

 

 

bitmap size exceeds vm budget

In my case, it happened using big size image file (over 1.3M) (android simulator 2.3.3)

So, just do use this code.

	public Bitmap readAssetsBitmap(String filename) {
	    AssetManager assets = getContext().getResources().getAssets();
        try {
            BitmapFactory.Options options = new BitmapFactory.Options(); 
            options.inPurgeable = true;
            options.inPreferredConfig = Bitmap.Config.ARGB_4444;
            options.inTempStorage = new byte[1024 * 1024 * 2];
            Bitmap bitmap = BitmapFactory.decodeStream(assets.open(filename), null, options);
            if(bitmap == null) {
                //throw new IOException("File cannot be opened: It's value is null");
            }
            else {
                return bitmap;
            }
        } catch (IOException e) {
            //throw new IOException("File cannot be opened: " + e.getMessage());
        }

        return null;
    }