메뉴 건너뛰기

XEDITION

ANDROID

조회 수 1840 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

스크롤 뷰

 

스크롤 뷰는 안에 추가된 뷰의 영역이 한 번에 다 보이지 않을 때 사용된다. 안드로이드에서는 스크롤 뷰 안에 뷰를 넣는 것으로 스크롤이 가능하다. 스크롤 뷰에 뷰를 넣기 위해서는 ScrollView 태그를 사용하며 그 안에는 한 개의 뷰가 들어갈 수 있다.

 

이미지가 클 경우 스크롤 할 수 있도록 이미지 뷰를 스크롤 뷰 안에 넣어 스크롤 기능을 붙여 넣은 XML 레이아웃

 

<LinearLayout xmlns...

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

 

<Button

android:id="@+id/btn01"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:text="Change Image"/>

----> 이미지 변경을 위한 버튼

 

<HorizontalScrollView

android:id="@+id/horScrView01"

android:layout_width="wrap_content"

android:layout_height="wrap_content">

-----> 수평 스크롤을 위한 스크롤 뷰

 

<ScrollView

android:id="@id/scrView01"

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>

 

스크롤 뷰는 기본적으로 수직 방향의 스크롤을 지원하며 수평 방향의 스크롤을 사용하고자 하는 경우에는 HorizontalScrollView를 이용한다. 

앞에 레이아웃에서는 이미지 뷰에 설정된 이미지가 큰 경우, 수평과 수직 스크롤을 모두 보이게 하기 위해서 HorizontalScrollView안에 ScrollView를 추가한 후 다시 그 안에 이미지 뷰를 추가하는 방식을 사용했다.

자바코드에서는 이 XML 레이아웃을 메인 액티비티의 setContentView() 메소드를 이용해 적용한  후 이미지뷰 객체에 이미지를 설정하는 코드를 추가.

 

public class SampleScrollViewActivity extends Activity {

ScrollView scrollView01;

ImageView imageView01;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

 

scrollView01 = (ScrollView) findViewById(R.id.scrView01);

imageView01 = (ImageViewfindViewById(R.id.imgView01);

Button button01 = (Button) findViewById(R.id.btn01);

-----> 레이아웃에 정의된 뷰 객체 참조

 

scrollView01.setHorizontalScrollBarEnabled(true);

Resources res = getResources();

-----> 수평 스크롤바 기능 설정

 

BitmapDrawable bitmap = (BitmapDrawable) res.getDrawable(R.drawable.system_architecture);

int bitmapWIdth = bitmap.getIntrinsicWidth();

int bitmapHeight = bitmap.getIntrinsicHeight();

-----> 리소스의 이미지 참조

 

imageView01.setImageDrawable(bitmap);

imageView01.getLayoutParams().width = bitmapWidth;

imageView01.getLayoutParams().height = bitmapHeight;

-----> 이미지 리소스와 이미지 크기 설정

 

button01.setOnClickListener(new OnClickListener() {

public void onClick (View v) {

changeImage();

}

      });

}

 

private void changeImage() {

Resources res = getResources();

BitmapDrawable bitmap = (BitmapDrawable);

res.getDrawable(R.drawable.activity_lifecycle);

int bitmapWidth = bitmap.getIntrinsicWidth();

int bitmapHeight = bitmap.getIntrinsicHeight();

 

imageView01.setImageDrawable(bitmap);

imageView01.getLayoutParams().width = bitmapWidth;

imageView01.getLayoutParams().height = bitmapHeight;

-----> 다른 이미지 리소스로 변경

 }

}

?

List of Articles
번호 제목 글쓴이 날짜 조회 수
64 [슈팅 게임 만들기] 11. 강좌가 늦어져 예제로 대신합니다 엘리후 2017.06.01 93
63 안드로이드 게임 만들기 SpriteAnimation 엘리후 2016.02.29 672
62 [안드로이드 어플 개발] 이동 애니메이션 (Translate Animation) 엘리후 2015.12.24 373
61 Multipart를 이용하여 파일+문자열 한꺼번에 전송하기 엘리후 2015.12.01 3140
60 How do I upload large files (10MB) in Android? 엘리후 2015.11.26 925
59 Upload Video from android to server? 엘리후 2015.11.26 266
58 안드로이드] Fragment 쉽게 사용하기 엘리후 2015.11.24 386
57 안드로이드(android) 다이얼로그(dialog) 종류별 구현 방법 엘리후 2015.11.11 431
56 ActionBar에 메뉴 넣기. 엘리후 2015.11.11 188
55 앱 통계를 내 사이트에서 수집하기 엘리후 2015.10.07 827
54 나인패치 (9patch) 이미지 만드는 방법 엘리후 2015.10.07 350
53 VOLLEY 라이브러리 엘리후 2015.10.02 539
52 안드로이드 나인패치 이미지 만들기 [나인패치 영역선택 및 수정] 엘리후 2015.09.25 879
51 안드로이드 Support Library Setup 엘리후 2015.09.25 444
50 안드로이드 Multipart 업로드 예제 엘리후 2015.09.23 8811
49 이클립스/Eclipse 메모리 Heap 영역 늘리기 엘리후 2015.09.13 263
48 [Android, Hybrid]openFileChooser 킷캣에서 동작하지 않는 문제( openFileChooser Kitkat bug ) 엘리후 2015.08.27 605
47 Android – WebView에서 input태그를 통한 파일 업로드하기 엘리후 2015.08.27 3627
46 WebView 컨트롤 엘리후 2015.08.27 445
45 안드로이드 동영상 파일 업로드 예제 엘리후 2015.08.25 1181
44 안드로이드 채팅 ui 만들기 관련 리스트뷰(ListView)의 layout_weight 옵션을 이용한 채팅 GUI 구현, 카카오 채팅 말풍선 엘리후 2015.08.21 27790
43 Android 간단한 로그인, 회원 가입 폼 만들기 for Mac (PHPMyAdmin 이용) 엘리후 2015.08.21 1962
42 안드로이드 프레임워크 프로그래밍 [시스템서비스 추가하기] 엘리후 2015.08.11 156
41 안드로이드에서 실행 시 발생하는 에러 엘리후 2015.08.10 164
» 안드로이드 ; 스크롤 뷰 엘리후 2015.08.09 1840
39 android Facebook SDK 3.0 로그인 및 포스팅 엘리후 2015.08.07 479
38 [android] 안드로이드 전역 변수 사용하기 android global variable 엘리후 2015.07.30 645
37 [Android] WebView를 사용할때 HttpClient를 이용한 Session 유지 엘리후 2015.07.29 5567
36 [MY_SQL] where절과 having절의 차이 엘리후 2015.07.27 246
35 [안드로이드 개발 강좌] 데이터베이스(DataBase) - DB 생성,저장,수정,삭제 엘리후 2015.07.21 939
Board Pagination Prev 1 2 3 Next
/ 3
위로