총 게시물 105건, 최근 0 건 안내 RSS 글쓰기
이전글  다음글  목록 글쓰기
[참고]

p.249 갤러리 이미지에 액자 모양 설정하기

글쓴이 : 케이파 날짜 : 2013-03-14 (목) 11:20 조회 : 5637
글주소 : http://www.androidside.com/823/811
 
  오라클자바교육센터 구로본점
안드로이드전문교육, SDK실무개발, APP개발프로젝트, 실습폰지원, 재직자환급
www.oraclejava.co.kr
  엠브이테크
임베디드 개발용역 및 양산 Rockchip Freescale 엑시노스
www.mvtech.or.kr
  APP제작사 바이더앱
어플개발, 안드로이드, 아이폰, 어플맞춤제작, 쇼핑몰앱제작, 무료상담
www.buytheapp.co.kr
신청하기


package com.androidside.gallerydemoa2;
import android.app.Activity;
import android.content.Context;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
public class Main extends Activity {
    // Gallery에서 보여줄 이미지를 지정한다.
    // 이미지들은 /res/drawable-hdpi 아래에 pic1.jpg, pic2.jpg 와 같은 이름으로 저장한다.
    // 이미지 이름은 숫자로 시작해서는 안되며 영문자, 숫자, _ 문자로 구성되어야 한다.
    Integer[] images = { R.drawable.pic1, R.drawable.pic2, R.drawable.pic3,
            R.drawable.pic4, R.drawable.pic5, R.drawable.pic6 };
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        // /res/layout/gallerydemo1.xml에 선언한 gallery1라는 이름을 가진 Gallery를 불러온다.
        Gallery gallery = (Gallery) findViewById(R.id.gallery1);
        // 갤러리에서 보여줄 이미지를 처리하는 어댑터를 설정한다.
        // ImageAdapter는 BaseAdapter를 확장해서 만들어야 한다.
        gallery.setAdapter(new ImageAdapter(this));
    }
    // 갤러리에 보여질 이미지 어댑터를 선언한다.
    public class ImageAdapter extends BaseAdapter {
        private Context context;
        private int itemBackground;
        public ImageAdapter(Context c) {
            context = c;
            // 갤러리를 표현하기 위한 배경 스타일을 얻는다.
            // R.styleable.Gallery1은 갤러리를 위한 스타일을 지정하기 위한 이름이며
            // 이 예제에서는 /res/values/gallerydemo1_style.xml에 작성한다.
            TypedArray a = obtainStyledAttributes(R.styleable.Gallery1);
            // 스타일 정보에서 갤러리 배경 스타일을 얻는다.
            itemBackground = a.getResourceId(
                    R.styleable.Gallery1_android_galleryItemBackground, 0);
            // 갤러리 배경 스타일을 얻기 위해 사용했던 자원을 해지한다.
            a.recycle();
        }
        // 이미지 전체 개수를 반환한다.
        public int getCount() {
            return images.length;
        }
        // 주어진 position에 대한 이미지 리소스 아이디를 반환한다.
        public Integer getItem(int position) {
            return images[position];
        }
        // 주어진 position에 대한 이미지 리소스 아이디를 반환한다.
        public long getItemId(int position) {
            return position;
        }
        // 주어진 position 에 대한 ImageView를 반환한다.
        public View getView(int position, View convertView, ViewGroup parent) {
            // ImageView를 생성한다.
            ImageView imageView = new ImageView(context);
            // 주어진 position에 해당하는 이미지 리소스 아이드를 설정한다.
            imageView.setImageResource(getItem(position));
            // 갤러리에 보여지는 이미지 크기를 설정한다. 100*80
            imageView.setLayoutParams(new Gallery.LayoutParams(100, 80));  << 이 부분
            // ImageView 배경 스타일에 Gallery의 배경 스타일을 지정한다.
            imageView.setBackgroundResource(itemBackground);
            // ImageView를 반환한다.
            return imageView;
        }
    }
}
 
갤럭시s3인 제 폰에서 GalleryDemoA1을 실행시켰을 때는 책의 예시와 거의 비슷하게 나왔으나 GalleryDemoA2 소스를 그대로 제 폰에 실행시켰더니 100*80로 설정했을 경우에는 액자틀이 제대로 나오지도 않고 이미지도 상당히 작게 나오더군요
imageView.setLayoutParams(new Gallery.LayoutParams(140, 120));  << 140/120정도로 설정하니 책의 이미지에 가깝게 나오더군요 ㅋ



케이파 님의 단계별 안드로이드 4.0 최신글 [더보기]


카이로 2013-04-02 (화) 22:18
이게 실제적으로 크기를 하드코딩하는 개념이라 해상도에 따라 달라질 수 있습니다. 그래서 해상도에 따라 크기를 적절히 조정하는 코드가 필요할 듯 하네요.
댓글주소
이전글  다음글  목록 글쓰기

총 게시물 105건, 최근 0 건 안내 RSS
번호 분류 제목 글쓴이 날짜 조회
105 Q&A
이렇게 계속 뜨고 안되네요ㅠㅠ 뭐가 문젠지 모르겠습니다..... 이제 막 시작한 초보라서
홍티 05-04 2450
104 참고
SVN 에서 로드 시켰을때에는 에러가 발생 하는데아무래도 "누나"가 에러를 일으키는 듯 해서소스코드를 다운 받아…
딸기우유주까 12-17 3188
103 Q&A
어제 서점에 들러 안드로이드개발 관련 책을 읽다가 맘에 드는 책을 발견해서 200개의 단계별 예제로 배우는.…
단비초롱 06-23 3637
102 자유
나름대로 안드로이드로 어떻게 해야 할까 고민중입니다.   현재 책을 구입해서 study하고 있는데 아직도 갈길…
컴프로 01-19 3855
101 정오표
shitch case 문에서요... 각 case 문에서 break; 빠졌네요.. 페이지 소스에서 동일한 결과만 나옵니다. break; 추가하면 …
청천 12-13 4031
100 자유
어제 사이트 접속이 먹통이 되더니...   SVN 연결이 않됩니다.   잘 이용을 하고 있었는데....   확…
청천 12-13 4189
99 Q&A
공부를 하려고 안드로이드 4.0 구입을 했습니다.(part4 시작하려고 합니다.) 너무나 초보이기에 어떻게 해야하는지…
청천 12-04 3878
98 Q&A
안녕하세요~   책에 나온 예제를 핸드폰에서 디버깅하려는데 안되서요~   에물레이터에서는 되구요. &n…
겜도리 11-05 5186
97 Q&A
공부하다보면 예제를 자신스타일에 맞게 변형들 하고 그러잖아요? 그런 자료들 공유 할수 잇는 공간이 있으면 …
Rian 07-05 4050
96 Q&A
SVN으로 소스 제공도 해주시고 이렇게 와서 질문도 할 수 있어서 참 좋은데요. 책만봐서는 어느게 예제인지 분…
Renz 06-14 4653
95 Q&A
완전 초보입니다. 200개의 단계별 예제로 배우는 안드로이드 4.0 구입해서 공부중인데 개발환경이..  기…
Renz 06-13 4557
94 공지
앞으로 구글맵은 v2를 사용해야 합니다. 현재 안드로이드 4.0 서적에 있는 구글맵 v1이므로 아래 링크에 있는 pdf…
카이로 06-01 10078
93 자유
환경 구축하는데 있어서 java설치 후 컴파일 path설정하는 부분이 안드로이드 4.0책에는 누락되어 있더군요저같은 …
케이파 04-16 4999
91 Q&A
.. 늦는가 보다.. 생각하고 계속 하고 있는데요.   폰으로 직접 연결해서 테스트 하는 방법 좀 알려주세요.
han9136 04-13 5450
90 Q&A
젤리빈에서 소프트 키보드의 이벤트가 작동하지 않네요. 어떻게 해야 할까요??  ㅎㅎㅎ 참고 http://developer.…
푸른산 04-12 4984
89 Q&A
  import android.* // 관련 import는 D:\and_book\android-sdk-windows\platforms\android-15\android.jar  파일인지 알겠는데요. &…
han9136 03-20 5800
88 참고
package com.androidside.gallerydemoa2; import android.app.Activity;import android.content.Context;import android.content.res.TypedArray;import androi…
케이파 03-14 5638
87 Q&A
안녕하세요. 혼자 공부하다 보니 질문이 좀 있습니다. 애플리케이션 위젯의 예제를 실행하면 Console에서 다음…
그라시아스 03-13 4746
86 Q&A
책대로 쭉쭉 따라오는데 지금 934페이지랑 다르게 나와서.. 어떻게 해야될지 모르겠습니다..
새하얀콩 03-12 5049
 1  2  3  4  5  6  맨끝
 


Copyright ⓒ www.androidside.com. All rights reserved.
채팅 권한: 글쓰기 1개
2레벨 이상만 대화 가능
공개 채팅: 평일 !(9시 ~ 17시),토,일
안사2 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기