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

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

글쓴이 : 케이파 날짜 : 2013-03-14 (목) 11:20 조회 : 6063
글주소 : http://www.androidside.com/823/811
 
  반도체전문업체 NXP반도체
반도체전문업체, 휴대전화, 가전, ID, 범용반도체, 소프트웨어, 반도체제품안내.
www.nxp.com
  오라클자바교육센터 구로본점
안드로이드전문교육, SDK실무개발, APP개발프로젝트, 실습폰지원, 재직자환급
www.oraclejava.co.kr
  서울게임아카데미
추천게임학원, 2018년 한국 소비자만족지수 1위, 고용노동부국비지원, 수강료조회
www.seoulgame.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 2908
104 참고
SVN 에서 로드 시켰을때에는 에러가 발생 하는데아무래도 "누나"가 에러를 일으키는 듯 해서소스코드를 다운 받아…
딸기우유주까 12-17 3679
103 Q&A
어제 서점에 들러 안드로이드개발 관련 책을 읽다가 맘에 드는 책을 발견해서 200개의 단계별 예제로 배우는.…
단비초롱 06-23 4159
102 자유
나름대로 안드로이드로 어떻게 해야 할까 고민중입니다.   현재 책을 구입해서 study하고 있는데 아직도 갈길…
컴프로 01-19 4306
101 정오표
shitch case 문에서요... 각 case 문에서 break; 빠졌네요.. 페이지 소스에서 동일한 결과만 나옵니다. break; 추가하면 …
청천 12-13 4455
100 자유
어제 사이트 접속이 먹통이 되더니...   SVN 연결이 않됩니다.   잘 이용을 하고 있었는데....   확…
청천 12-13 4687
99 Q&A
공부를 하려고 안드로이드 4.0 구입을 했습니다.(part4 시작하려고 합니다.) 너무나 초보이기에 어떻게 해야하는지…
청천 12-04 4320
98 Q&A
안녕하세요~   책에 나온 예제를 핸드폰에서 디버깅하려는데 안되서요~   에물레이터에서는 되구요. &n…
겜도리 11-05 5657
97 Q&A
공부하다보면 예제를 자신스타일에 맞게 변형들 하고 그러잖아요? 그런 자료들 공유 할수 잇는 공간이 있으면 …
Rian 07-05 4499
96 Q&A
SVN으로 소스 제공도 해주시고 이렇게 와서 질문도 할 수 있어서 참 좋은데요. 책만봐서는 어느게 예제인지 분…
Renz 06-14 5096
95 Q&A
완전 초보입니다. 200개의 단계별 예제로 배우는 안드로이드 4.0 구입해서 공부중인데 개발환경이..  기…
Renz 06-13 4985
94 공지
앞으로 구글맵은 v2를 사용해야 합니다. 현재 안드로이드 4.0 서적에 있는 구글맵 v1이므로 아래 링크에 있는 pdf…
카이로 06-01 10633
93 자유
환경 구축하는데 있어서 java설치 후 컴파일 path설정하는 부분이 안드로이드 4.0책에는 누락되어 있더군요저같은 …
케이파 04-16 5439
91 Q&A
.. 늦는가 보다.. 생각하고 계속 하고 있는데요.   폰으로 직접 연결해서 테스트 하는 방법 좀 알려주세요.
han9136 04-13 5885
90 Q&A
젤리빈에서 소프트 키보드의 이벤트가 작동하지 않네요. 어떻게 해야 할까요??  ㅎㅎㅎ 참고 http://developer.…
푸른산 04-12 5384
89 Q&A
  import android.* // 관련 import는 D:\and_book\android-sdk-windows\platforms\android-15\android.jar  파일인지 알겠는데요. &…
han9136 03-20 6291
88 참고
package com.androidside.gallerydemoa2; import android.app.Activity;import android.content.Context;import android.content.res.TypedArray;import androi…
케이파 03-14 6064
87 Q&A
안녕하세요. 혼자 공부하다 보니 질문이 좀 있습니다. 애플리케이션 위젯의 예제를 실행하면 Console에서 다음…
그라시아스 03-13 5163
86 Q&A
책대로 쭉쭉 따라오는데 지금 934페이지랑 다르게 나와서.. 어떻게 해야될지 모르겠습니다..
새하얀콩 03-12 5491
 1  2  3  4  5  6  맨끝
 


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