android

android 이미지 원래비율대로 리사이징

포카리s 2014. 10. 1. 11:37
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

[메서드]

public static int[] getScaleSizeByWidth(final Context ctx,final int imgId,final int wid){

Bitmap bm = BitmapFactory.decodeResource(ctx.getResources(), imgId);

       

if(bm!=null){

int viewWeight = wid;

float width = bm.getWidth();

float height = bm.getHeight();

 

    float percente = (float)(width / 100);

    float scale = (float)(viewWeight / percente);

    width *= (scale / 100);

    height *= (scale / 100);

    //bm.recycle();

   

int[] i = new int[2];

i[0] = (int)width;

i[1] = (int)height;

return i;

}else{

int[] i = new int[2];

i[0] = 0;

i[1] = 0;

return i;

}

}


[사용 부분]

@Override

public void onWindowFocusChanged(boolean hasFocus) {

ImageView ivKakao = (ImageView)findViewById(R.id.kakaoimg);

if(hasFocus==true){

int[] si = getScaleSizeByWidth(KakaoStoryLink.this,R.drawable.kakostoryback, ivKakao.getWidth());

ivKakao.getLayoutParams().width = si[0];

ivKakao.getLayoutParams().height = si[1];

Log.i("LOSA",ivKakao.getWidth()+"");

}

}


Activity에 onWindowFocusChanged 부분에서만 이미지 width 값을 알수가 있다 onCreate 부분에서는 알수없음