wasup

Android) ScrollView 본문

IT/Android

Android) ScrollView

wasupup 2021. 8. 5. 11:26
반응형

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


반응형
Comments