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 사용)
갤러리 뷰를 싹~ 없애고, 화면터치로 다음 이미지로 넘어가는걸 어케 만들지 전혀 감이 안잡히네요.
도와주시면 감사하겠습니다 흑흑




아니면 이미지스위쳐의 onTouchEvent 를 오버라이드해서 정의하셔야하겠네요