지난 주에 이어 이번 주에는 구글 안드로이드 사이트의 튜토리얼 중 하나인 HelloGallery를 만들었다. 구글 사이트에 올라온 코드가 버그가 있어서 그대로 옮기면 에러가 나고, 아래와 같이 'c.'를 붙여주어야 한다.
        public ImageAdapter(Context c) {
            mContext = c;
            TypedArray a = c.obtainStyledAttributes(R.styleable.HelloGallery);
            mGalleryItemBackground = a.getResourceId(
                    R.styleable.HelloGallery_android_galleryItemBackground, 0);
            a.recycle();
        }

이렇게 우선 gallery를 만들어 main.xml 의 Gallery 부분을 다음과 같이 화면에 꽉차게 만들어 주면 기본적인 갤러리 기능은 동작하게 된다.
    <Gallery
        android:id="@+id/gallery"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />


여기에 이미지 버튼을 넣어주면 다음과 같다. (main.xml 및 HelloGallery class) i를 누르면 Toast를 사용해 간단한 정보를 출력하게 하고, x를 누르면 현재 Activity를 종료하게끔 하였다.(현재는 x버튼을 다른 테스트용도로 사용하느라 코드에서는 빠져있다.)
    <ImageButton
        android:id="@+id/info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_menu_info_details"
        android:background="#00000000"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginRight="10px"
        android:layout_marginBottom="26px"
    />
        ImageButton btnInfo = (ImageButton)findViewById(R.id.info);
        Drawable dBtnInfo = btnInfo.getBackground();
        dBtnInfo.setAlpha(100);
        btnInfo.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Toast.makeText(HelloGallery.this, R.string.about, Toast.LENGTH_LONG).show();
            }
        });


마지막으로 메뉴를 만들어 주면 다음과 같다. (menu.xml 및 HelloGallery class)
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_info"
        android:icon="@drawable/ic_menu_info_details"
        android:title="@string/menu_info"/>
    <item android:id="@+id/menu_close"
        android:icon="@drawable/ic_menu_close"
        android:title="@string/menu_close"/>
</menu>
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        mMenu = menu;
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu, mMenu);
       
        return true;
    }
   
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch(item.getItemId()) {
        case R.id.menu_info:
            Toast.makeText(HelloGallery.this, R.string.about, Toast.LENGTH_LONG).show();
            break;
           
        case R.id.menu_close:
            finish();
            break;
        }
        return true;
    }


앞으로 해보고 싶은 것은 다음과 같다.
  1. 화면 클릭 시 이미지 확대 및 상하좌우 스크롤
  2. 특정 웹의 이미지를 갤러리로 가져오기
  3. 이미지에 별점을 주고 이를 웹사이트와 연동
  4. 이미지 위에 해당 이미지에 관한 정보를 띄워주는 것
  5. 등등..
그나저나 8~9년전 했던 Java를 다시 하려니 참 적응이 안된다.

오늘 참고한 사이트는 다음과 같다.
http://www.androidside.com/
http://www.anddev.org/post36267.html#p36267

저작자 표시 비영리 변경 금지

댓글을 달아 주세요

  1. 2010/06/24 15:18  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

    • Favicon of http://jkproject.net 정기 2010/06/26 02:03  댓글주소  수정/삭제

      전체소스는 구글 안드로이드 사이트의 것을 그대로 사용하시고, 본 포스팅에 있는 내용을 추가 혹은 수정만 하시면 됩니다. 직접 해보시는 것이 더 도움이 되리라 생각합니다.

  2. 오찌 2010/10/19 09:52  댓글주소  수정/삭제  댓글쓰기

    안드로이드의 갤러리 샘플을 해보니 이미지가 3개씩 나오던데요.. 어떻게 해서 하나씩 나오는 건가요... 이미지 사이즈를 키워주면 되는건가요??

  3. 2010/11/11 16:08  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  4. 2010/11/21 03:21  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다