Please Enable JavaScript!
Gon[ Enable JavaScript ]

(1) 안드로이드 (android) 의 ImageView 레이아웃에 대한 사용법

안드로이드 개발
반응형

(1) 안드로이드 (android) 의 ImageView 레이아웃에 대한 사용법 


ImageView
는 이미지를 표현하는 레이아웃이다.

아래의 전체 예제는 리소스에 대한 정보를 가져와 ImageView 레이아웃에 표현하는 것이다.

예제의 소스처럼 ImageView setImageResource 함수를 사용해서 리소스 데이터를

바로 넣을수도 있겠지만 보통 입맛에 맞게 크기를 조절한다던지 용량을 줄이는 등의

작업을 진행한후 사용한다.

이때는 리소스 데이터를 Bitmap 데이터로 변환한후 크기를 조작한다던지 용량을 줄이는

작업후 사용하면 된다. Bitmap 데이터의 크기를 조절한후 setImageBitmap 함수의

파라미터로 이미지를 넣어 셋팅한 예제이다.


ImageView iv = new ImageView(this);
Bitmap orgImage = BitmapFactory.decodeResource(getResources(), R.drawable.news);
Bitmap resize = Bitmap.createScaledBitmap(orgImage, 300, 400, true);
iv.setImageBitmap(resize);

위의 예제는 리소스에 있는 그림을 가져와 셋팅한 것인데 SDCARD 에서 이미지를 가져와

셋팅을 할수도 있다. 먼저 에뮬레이터를 사용한다면 SDCARD 이미지에 그림을 복사해 넣고

decodeFile 함수를 호출해준다. 첫번째 파라미터로는 파일이 있는 주소가 들어가고 두번째

파라미터에는 BitmapFactory.Options 의 옵션값이 들어간다. 어떤 형태로 로딩할것인지

정해주는것이다.
ImageView iv = new ImageView(this);
BitmapFactory.Options bo = new BitmapFactory.Options();
bo.inSampleSize = 8;
Bitmap bmp = BitmapFactory.decodeFile(thumbsDataList.get(position), bo);
iv.setImageBitmap(bmp);

XML 을 사용하지 않고 순수하게 소스내에서 레이아웃 객체를 생성해 화면을 표현한

전체 예제이다. 소스에서 LinearLayout 는 최상위 레이아웃이고 여기에 ImageView

객체를 생성해서 넣은것이다. mLinearLayout.addView(iv); 같다.

그리고 LayoutParams.FILL_PARENT XML 에서 layout_width="fill_parent"

동일한 표현으로 상위 레이아웃의 크기에 맞게 채운다는 말이다.


import android.app.Activity;
import android.os.Bundle;
import android.view.ViewGroup.LayoutParams;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.LinearLayout;

public class Main extends Activity {
	
	private LinearLayout mLinearLayout;
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // ImageView 를 추가하기 위한 LinearLayout 생성
        mLinearLayout = new LinearLayout(this);
        
        // ImageView 객체 생성
        ImageView iv = new ImageView(this);
        iv.setImageResource(R.drawable.test01);
        iv.setAdjustViewBounds(true);
        iv.setLayoutParams(new Gallery.LayoutParams(
        		LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
        iv.setScaleType(ImageView.ScaleType.FIT_XY); // 레이아웃 크기에 이미지를 맞춘다
        
        mLinearLayout.addView(iv);
        setContentView(mLinearLayout);
    }
}

반응형
Posted by 녹두장군1
,