안드로이드(Android) ImageView 사이즈(size) 조절하는 방법 |
환경: Eclipse Mars, Android 4.2.2
이번에는 레이아웃 XML 에서 지정한 ImageView 사이즈를 소스에서 필요한 경우 조절하는 방법에 대해 알아 보겠습니다. 예제는 기기의 넓이와 높이 값을 가져온 후ImageView 의 크기를 맞출 것입니다. 기기 화면의 넓이와 높이 픽셀 값을 가져오는 방법과 ImageView 레이아웃 사이즈를 조절하는 방법을 알 수 있을 겁니다.
▼ 기기의 해상도 정보를 가져오기 위해 WindowManager 객체를 이용합니다. getMetrics() 함수에 DisplayMetrics 객체를 생성해서 넘깁니다. 그럼 화면 해상도와 밀도, 스케일링 정보가 있는 객체를 담아 줍니다. DisplayMetrics 에서 widthPixels, heightPixels 이 화면 픽셀 정보가 됩니다.
DisplayMetrics metrics = new DisplayMetrics(); WindowManager windowManager = (WindowManager) getApplicationContext() .getSystemService(Context.WINDOW_SERVICE); windowManager.getDefaultDisplay().getMetrics(metrics);
▼ 리턴 받은 DisplayMetrics 정보로 ImageView 의 크기를 조절하시면 되겠죠. ImageView 의 가로 세로 값을 조절하기 위해서 LayoutParams 객체를 리턴 받습니다. 그리고 내부에 width, height 속성값을 DisplayMetrics 에 담겨 있는 픽셀 값으로 셋팅 하시면 크기를 변경할 수 있습니다.
ImageView img = (ImageView) findViewById(R.id.imgView); LayoutParams params = (LayoutParams) img.getLayoutParams(); params.width = metrics.widthPixels; params.height = metrics.heightPixels; img.setLayoutParams(params);
▼ 아래 소스는 이미지 사이즈를 화면 크기만큼 변경하도록 구현한 것입니다. 전체 소스이며 버튼 클릭 시 사이즈가 변경됩니다.
import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.util.DisplayMetrics; import android.view.View; import android.view.View.OnClickListener; import android.view.WindowManager; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout.LayoutParams; import com.example.sampleandroidinfo.R; public class ImageResizeActivity extends Activity { Context mContext; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_image_resize); Button button = (Button) findViewById(R.id.btn_alert); button.setOnClickListener(new OnClickListener() { public void onClick(View v) { DisplayMetrics metrics = new DisplayMetrics(); WindowManager windowManager = (WindowManager) getApplicationContext() .getSystemService(Context.WINDOW_SERVICE); windowManager.getDefaultDisplay().getMetrics(metrics); ImageView img = (ImageView) findViewById(R.id.imgView); LayoutParams params = (LayoutParams) img.getLayoutParams(); params.width = metrics.widthPixels; params.height = metrics.heightPixels; img.setLayoutParams(params); } }); } }
▼ 아래는 메인 Activity 를 구성하는 화면 레이아웃 XML 입니다. 버튼과 이미지를 표현한 ImageView 위젯이 추가 되어 있습니다.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout2" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#3F0099" android:gravity="center" android:paddingBottom="@dimen/abc_action_bar_icon_vertical_padding" android:paddingTop="@dimen/abc_action_bar_icon_vertical_padding" android:text="ImageView 사이즈 조절하는 방법" android:textColor="#FFFFFF" /> <Button android:id="@+id/btn_alert" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="사이즈확대" /> <ImageView android:id="@+id/imgView" android:layout_width="200dp" android:layout_height="200dp" android:layout_marginTop="10dp" android:background="#548745" android:src="@drawable/chrysant" /> </LinearLayout>
'안드로이드 개발' 카테고리의 다른 글
안드로이드(Android) ProgressDialog Cancel Button 추가하는 방법 (0) | 2020.03.15 |
---|---|
안드로이드(Android) ProgressDialog 숫자 상태정보 퍼센트(Percentage) 로 표현하는 방법 (0) | 2020.02.16 |
안드로이드(Android) 스레드(Thread) 이용한 ProgressDialog 구현하기 (0) | 2020.01.26 |
안드로이드(Android) 이미지 드래그 앤 드랍(Drag and Drop) 하는 방법 (3) | 2019.12.01 |
안드로이드(Android) 가로 세로 모드 자동회전 고정하는 방법 (0) | 2019.10.30 |
안드로이드(Android) 사용자정의 진행 다이얼로그(Custom Progress Dialog) 만드는 방법 (5) | 2019.10.28 |
안드로이드(Android) 다이얼로그(Dialog) Animation 효과 넣는 방법 (1) | 2019.10.28 |
안드로이드(Android) Theme.dialog 로 Activity 화면을 팝업(dialog) 만드는 방법 (0) | 2019.10.27 |