메뉴 건너뛰기

XEDITION

ANDROID

조회 수 1872 추천 수 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 118
63 안드로이드 게임 만들기 SpriteAnimation 엘리후 2016.02.29 699
62 [안드로이드 어플 개발] 이동 애니메이션 (Translate Animation) 엘리후 2015.12.24 392
61 Multipart를 이용하여 파일+문자열 한꺼번에 전송하기 엘리후 2015.12.01 3549
60 How do I upload large files (10MB) in Android? 엘리후 2015.11.26 931
59 Upload Video from android to server? 엘리후 2015.11.26 268
58 안드로이드] Fragment 쉽게 사용하기 엘리후 2015.11.24 401
57 안드로이드(android) 다이얼로그(dialog) 종류별 구현 방법 엘리후 2015.11.11 450
56 ActionBar에 메뉴 넣기. 엘리후 2015.11.11 192
55 앱 통계를 내 사이트에서 수집하기 엘리후 2015.10.07 917
54 나인패치 (9patch) 이미지 만드는 방법 엘리후 2015.10.07 361
53 VOLLEY 라이브러리 엘리후 2015.10.02 564
52 안드로이드 나인패치 이미지 만들기 [나인패치 영역선택 및 수정] 엘리후 2015.09.25 935
51 안드로이드 Support Library Setup 엘리후 2015.09.25 466
50 안드로이드 Multipart 업로드 예제 엘리후 2015.09.23 9618
49 이클립스/Eclipse 메모리 Heap 영역 늘리기 엘리후 2015.09.13 269
48 [Android, Hybrid]openFileChooser 킷캣에서 동작하지 않는 문제( openFileChooser Kitkat bug ) 엘리후 2015.08.27 610
47 Android – WebView에서 input태그를 통한 파일 업로드하기 엘리후 2015.08.27 3654
46 WebView 컨트롤 엘리후 2015.08.27 449
45 안드로이드 동영상 파일 업로드 예제 엘리후 2015.08.25 1219
44 안드로이드 채팅 ui 만들기 관련 리스트뷰(ListView)의 layout_weight 옵션을 이용한 채팅 GUI 구현, 카카오 채팅 말풍선 엘리후 2015.08.21 30332
43 Android 간단한 로그인, 회원 가입 폼 만들기 for Mac (PHPMyAdmin 이용) 엘리후 2015.08.21 2006
42 안드로이드 프레임워크 프로그래밍 [시스템서비스 추가하기] 엘리후 2015.08.11 158
41 안드로이드에서 실행 시 발생하는 에러 엘리후 2015.08.10 166
» 안드로이드 ; 스크롤 뷰 엘리후 2015.08.09 1872
39 android Facebook SDK 3.0 로그인 및 포스팅 엘리후 2015.08.07 483
38 [android] 안드로이드 전역 변수 사용하기 android global variable 엘리후 2015.07.30 709
37 [Android] WebView를 사용할때 HttpClient를 이용한 Session 유지 엘리후 2015.07.29 6053
36 [MY_SQL] where절과 having절의 차이 엘리후 2015.07.27 261
35 [안드로이드 개발 강좌] 데이터베이스(DataBase) - DB 생성,저장,수정,삭제 엘리후 2015.07.21 957
Board Pagination Prev 1 2 3 Next
/ 3
위로