package ui.comic.sexymaid1;

 

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.Gallery.LayoutParams;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher;


public class image_switcher extends Activity implements
        AdapterView.OnItemSelectedListener, ViewSwitcher.ViewFactory {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        setContentView(R.layout.image_switcher_1);
       
//이미지 스위처 위젯의 애니메이션 설정
        mSwitcher = (ImageSwitcher) findViewById(R.id.switcher);
        mSwitcher.setFactory(this);
 /*       mSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,
                android.R.anim.fade_in));
        mSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,
                android.R.anim.fade_out));*/

        //갤러리 객체에, 사용자 정의 어댑터인 이미지 어댑터를 설정하여,
        //정의된 이미지들을 갤러리에 설정하여, 이미지 리스트가 나오게 합니다.
        //갤러리 이미지 리스트 리스너를 액티비티 메소드로 등록하여,
        //이미지를 선택했을때 화면이 부드럽게 전환되도록 설정합니다.
        Gallery g = (Gallery) findViewById(R.id.gallery);
        g.setAdapter(new ImageAdapter(this));
        g.setOnItemSelectedListener(this);
    }

    //갤러리 이미지 리스트의 이미지 항목을 선택했을 때,
    //상단의 이미지 스위처 위젯에 갤러리 리스트에서 선택한 이미지를 설정.
    //onCreate 메소드에서 이미지 스위처 위젯에 설정한 애니메이션이 실행되면서 전환
    public void onItemSelected(AdapterView parent, View v, int position, long id) {
        mSwitcher.setImageResource(mImageIds[position]);
    }

    public void onNothingSelected(AdapterView parent) {
    }
    //이미지 뷰 스위처 위젯의 레이아웃 뷰를 반환하는 뷰객체를 만들어 반환
    public View makeView() {
        ImageView i = new ImageView(this);
// 아래 내용이 있으면 백그라운드 이미지가 안보여서 주석 처리     
//        i.setBackgroundColor(0xFF000000);
//        i.setScaleType(ImageView.ScaleType.FIT_CENTER);
        i.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.MATCH_PARENT,
                LayoutParams.MATCH_PARENT));
        return i;
    }

    private ImageSwitcher mSwitcher;

    //이미지 갤러리 리스트에 추가할 이미지 항목 정의
    public class ImageAdapter extends BaseAdapter {
        public ImageAdapter(Context c) {
            mContext = c;
        }

        public int getCount() {
            return mThumbIds.length;
        }

        public Object getItem(int position) {
            return position;
        }

        public long getItemId(int position) {
            return position;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView i = new ImageView(mContext);

            i.setImageResource(mThumbIds[position]);
            i.setAdjustViewBounds(true);
            i.setLayoutParams(new Gallery.LayoutParams(
                    LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    //        i.setBackgroundResource(R.drawable.picture_frame);
            return i;
        }

        private Context mContext;

    }


    private Integer[] mThumbIds = {
            R.drawable.uic01_03_ko, R.drawable.uic01_02_ko, R.drawable.uic01_03_ko,
            R.drawable.uic01_04_ko, R.drawable.uic01_05_ko, R.drawable.uic01_06_ko,
            R.drawable.uic01_07_ko, R.drawable.uic01_08_ko, R.drawable.uic01_09_ko};

    private Integer[] mImageIds = {
            R.drawable.uic01_01_ko, R.drawable.uic01_02_ko, R.drawable.uic01_03_ko,
            R.drawable.uic01_04_ko, R.drawable.uic01_05_ko, R.drawable.uic01_06_ko,
            R.drawable.uic01_07_ko, R.drawable.uic01_08_ko, R.drawable.uic01_09_ko};

}

 

===============================================================

어우..머리 깨질 것 같네요.

지금 소스가 하단의 갤러리 이미지를 터치로 변경하면

중간의 이미지 스위쳐 이미지도 함께 변환되는 방식인데...(API Demo 사용)

 

갤러리 뷰를 싹~ 없애고, 화면터치로 다음 이미지로 넘어가는걸 어케 만들지 전혀 감이 안잡히네요.

도와주시면 감사하겠습니다 흑흑