본문 바로가기

안드로이드

스크롤뷰

반응형

수평과 수직 스크롤을 모두 나타내기 위해, HorizantalScrollView 안에 ScrollView를 추가한후 imageView를 추가

스크롤뷰는 뷰가 한 화면에 다 보이지 않을 때 사용하며, 스크롤 기능을 지원함, 뷰를 스크롤뷰 안에 넣는것 만으로 스크롤 기능이 자동으로 적용됨

 

 

스크롤뷰의 id를 설정해줌

 

 

 

package com.example.a07;

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.ImageView;
import android.widget.ScrollView;

public class MainActivity extends AppCompatActivity {

    ScrollView sv;
    ImageView iv;

//    BitmapDrawable 객체는 getIntrinsicWidth(), getIntrinsicHeight() 메소드를 통해서 크기를 참조할 수 있다
    BitmapDrawable bitmap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        sv = findViewById(R.id.scrollView);
        iv = findViewById(R.id.imageView);

//        수평 스크롤바 사용 기능 설정
        sv.setHorizontalScrollBarEnabled(true);

        Resources res = getResources();
        bitmap = (BitmapDrawable) res.getDrawable(R.drawable.image01);
        int bitmapWidth = bitmap.getIntrinsicWidth();
        int bitmapHeight = bitmap.getIntrinsicHeight();

        iv.setImageDrawable(bitmap);
        iv.getLayoutParams().width = bitmapWidth;
        iv.getLayoutParams().height = bitmapHeight;
    }

    public void onButton1Clicked(View v){
        changeImage();
    }

    private void changeImage(){
        Resources res = getResources();
        bitmap = (BitmapDrawable) res.getDrawable(R.drawable.image02);
        int bitmapWidth = bitmap.getIntrinsicWidth();
        int bitmapHeight = bitmap.getIntrinsicHeight();

        iv.setImageDrawable(bitmap);
        iv.getLayoutParams().width = bitmapWidth;
        iv.getLayoutParams().height = bitmapHeight;
    }
}
반응형

'안드로이드' 카테고리의 다른 글

셰이프 드로어블  (0) 2021.10.08
상태 드로어블  (0) 2021.10.08
프레임 레이아웃, 뷰 전환  (0) 2021.10.07
테이블 레이아웃  (0) 2021.10.07
상대 레이아웃  (0) 2021.10.07