|
안드로이드(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 |
