package com.example.pokettoeic06;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.OnHierarchyChangeListener;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.Gallery.LayoutParams;
import android.widget.ImageView;
import android.widget.ViewSwitcher;
public class HmodeActivity extends Activity implements
AdapterView.OnItemSelectedListener, ViewSwitcher.ViewFactory {
ImageAdapter ia;
private static int[] IMAGE_SIZE={300, 220, 150, 120, 80};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hh_mode);
ia = new ImageAdapter(this);
Gallery g = (Gallery) findViewById(R.id.Gallery01);
g.setCallbackDuringFling(true);
g.setAdapter(ia);
g.setOnItemSelectedListener(this);
g.setOnHierarchyChangeListener(new OnHierarchyChangeListener() {
@Override
public void onChildViewRemoved(View parent, View child) {
// TODO Auto-generated method stub
}
@Override
public void onChildViewAdded(View parent, View child) {
// TODO Auto-generated method stub
child.invalidate();
}
});
}
public void onItemSelected(AdapterView parent, View v, int position, long id) {
ia.setSelectedPosition(position);
ia.notifyDataSetChanged();
}
public void onNothingSelected(AdapterView parent) {
}
public View makeView() {
ImageView i = new ImageView(this);
// i.setBackgroundColor(0xFF000000);
i.setBackgroundColor(0x00000000);
i.setScaleType(ImageView.ScaleType.MATRIX);
return i;
}
public class ImageAdapter extends BaseAdapter {
int mGalleryItemBackground;
int mSelectedPosition = -1;
ImageView mSelectedImageView = null;
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 imageView;
if(convertView!=null){
imageView = (ImageView)convertView;
}else{
imageView = new ImageView(mContext);
}
imageView.setImageResource(mThumbIds[position]);
if(position == mSelectedPosition){
imageView.setLayoutParams(new Gallery.LayoutParams(
300, 300));
}else if(Math.abs(position-mSelectedPosition)==1 && mSelectedPosition!=-1){
imageView.setLayoutParams(new Gallery.LayoutParams(
220, 220));
}else if(Math.abs(position-mSelectedPosition)>=2 && mSelectedPosition!=-1){
int size = 0;
if(Math.abs(position-mSelectedPosition) >= IMAGE_SIZE.length){
size = IMAGE_SIZE[IMAGE_SIZE.length-1];
}else{
size = IMAGE_SIZE[Math.abs(position-mSelectedPosition)];
}
imageView.setLayoutParams(new Gallery.LayoutParams(
size, size));
}else{
imageView.setLayoutParams(new Gallery.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
}
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
return imageView;
}
private Context mContext;
public void setSelectedPosition(int p){
mSelectedPosition = p;
}
}
private Integer[] mThumbIds = {
R.drawable.stage01, R.drawable.stage02,
R.drawable.stage03, R.drawable.stage04,
R.drawable.stage05, R.drawable.stage06};
}
의 내용에서 Integer[] 안에 있는 이미지뷰에 대해서 각각의 id 값을 넣어
커버플로우가 작동시 클릭 이벤트를 진행하고 싶은데
여기서 어떻게 set을 할지 모르겠습니다...
고수님들 알려주세요 ~