wasup
Android) ScrollView 본문
반응형
new project name : hello09_scrollView
수정 : activity_main.xml
수정 : MainActivity.java
만들 화면
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="이미지 바꿔서 보여주기"
android:onClick="onButtonClicked01"
/>
<Button
android:id="@+id/button02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="이미지 원래대로 보여주기"
android:onClick="onButtonClicked02"
/>
<!--수평 스크롤바를 위한 스크롤뷰-->
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<!--스크롤뷰-->
<ScrollView
android:id="@+id/scrollView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<!--이미지를 보여주는 이미지뷰-->
<ImageView
android:id="@+id/imgView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</ScrollView>
</HorizontalScrollView>
</LinearLayout>
MainActivity.java
package com.example.hello09_scrollview;
import androidx.appcompat.app.AppCompatActivity;
import android.content.res.Resources;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ScrollView;
/*
스크롤뷰 사용하기
- 앱을 실행하면 화면보다 큰 이미지가 손가랄 터치에 따라 좌우/상하 스크롤된다.
*/
public class MainActivity extends AppCompatActivity {
//변수
ScrollView scrollView01;
ImageView imgView01;
BitmapDrawable bitmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);//activity_main.xml
//레이아웃에 정의된 뷰 객체 참조
scrollView01 = (ScrollView) findViewById(R.id.scrollView01);
imgView01 = (ImageView) findViewById(R.id.imgView01);
Button button01 = (Button) findViewById(R.id.button01);
//가로 스크롤뷰의 메소드 호출
//수평 스크롤바 사용 기능 설명
scrollView01.setHorizontalFadingEdgeEnabled(true);
//drawable 리소스에 있는 이미지를 가져와서 이미지뷰에 설정
//리소스 이미지 참조
Resources res = getResources();
bitmap = (BitmapDrawable) res.getDrawable(R.drawable.image01);
//이미지 크기(너비, 높이)
int bitmapWidth = bitmap.getIntrinsicWidth();//너비
int bitmapHeight = bitmap.getIntrinsicHeight();//높이
imgView01.setImageDrawable(bitmap);
imgView01.getLayoutParams().width = bitmapWidth;
imgView01.getLayoutParams().height = bitmapHeight;
}//onCreate-end
//버튼을 눌렀을 때 이미지 바꿔서 보여주기
public void onButtonClicked01(View v){
changeImage();//change method 호출
}
private void changeImage(){
//drawable 리소스에 있는 이미지를 가져와서 이미지뷰에 설정
//리소스 이미지 참조
Resources res = getResources();
bitmap = (BitmapDrawable) res.getDrawable(R.drawable.image02);
//이미지 크기(너비, 높이)
int bitmapWidth = bitmap.getIntrinsicWidth();//너비
int bitmapHeight = bitmap.getIntrinsicHeight();//높이
imgView01.setImageDrawable(bitmap);
imgView01.getLayoutParams().width = bitmapWidth;
imgView01.getLayoutParams().height = bitmapHeight;
}
//버튼을 눌렀을 때 이미지 바꿔서 보여주기2
public void onButtonClicked02(View v){
changeImage2();//change method 호출
}
private void changeImage2(){
//drawable 리소스에 있는 이미지를 가져와서 이미지뷰에 설정
//리소스 이미지 참조
Resources res = getResources();
bitmap = (BitmapDrawable) res.getDrawable(R.drawable.image01);
//이미지 크기(너비, 높이)
int bitmapWidth = bitmap.getIntrinsicWidth();//너비
int bitmapHeight = bitmap.getIntrinsicHeight();//높이
imgView01.setImageDrawable(bitmap);
imgView01.getLayoutParams().width = bitmapWidth;
imgView01.getLayoutParams().height = bitmapHeight;
}
}//class-end
반응형
'IT > Android' 카테고리의 다른 글
Android) Activity, Intent (0) | 2021.08.05 |
---|---|
Andriod) 기본 위젯 TextView, Button, RadioGroup, RadioButton, EditText (0) | 2021.08.05 |
Android) 요소배치, 클릭시 이미지 변경 (0) | 2021.08.04 |
Android) TableLayout (0) | 2021.08.04 |
Android) RelativeLayout(상대적 위치관계 2) (0) | 2021.08.04 |
Comments