gallery选中的图片在ImageView中显示出来,注意ImageView的一个View实际上就是一个ImageView,gllery的一个View也是一个ImageView。
对于Gallery
1. 相册循环
public int getCount()
{
return Integer.MAX_VALUE; //通过这个来进行循环
}
2. 制作View
public View
getView(int position,
View convertView, ViewGroup parent) {
// TODO Auto-generated
method stub
ImageView
image=new ImageView(context);
image.setImageResource(preImages[position%preImages.length]); //通过这个来进行循环
image.setScaleType(ImageView.ScaleType.FIT_XY);
image.setLayoutParams(new Gallery.LayoutParams(200,
120));
image.setBackgroundResource(typedArray.getResourceId(R.styleable.Gallery_android_galleryItemBackground,
0));
return image;
}
3. 设置View的背景
typedArray =
obtainStyledAttributes(R.styleable.Gallery);
image.setBackgroundResource(typedArray.getResourceId(R.styleable.Gallery_android_galleryItemBackground,
0));
对于ImageView
1. 设置View
//设置ImageSwitcher中的ImageView
switcher.setFactory(new ViewFactory(){
public View
makeView() {
ImageView
image=new ImageView(Scan_pic.this);
image.setScaleType(ImageView.ScaleType.FIT_CENTER);
image.setLayoutParams(newImageSwitcher.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));
return image;
}
});
Gallery相册的每一张相片的背景style的设置:
res/value/attr.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="Gallery">
<attr name="android:galleryItemBackground"/>
</declare-styleable>
</resources>
public class Scan_pic extends Activity
{
private ImageSwitcher switcher;
private Gallery gallery;
private int[] preImages;
private int[] afterImages;
private int postion;
public void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.scanpic);
switcher=(ImageSwitcher)findViewById(R.id.imageSwitcher_scan_pic);
gallery=(Gallery)findViewById(R.id.gallery1_scan_pic);
afterImages=new int[]{R.drawable.after0,R.drawable.after1,R.drawable.after2,R.drawable.after3};
preImages=new int[]{R.drawable.pre0,R.drawable.pre1,R.drawable.pre2,R.drawable.pre3};
gallery.setAdapter(new ImageAdapter(preImages,Scan_pic.this));
//设置gallery的项单击事件,更换ImagerSwitcher中的图片
gallery.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?>
arg0, View arg1,
int arg2, long arg3)
{
// TODO Auto-generated
method stub
switcher.setImageResource(preImages[arg2%preImages.length]);
postion=arg2%preImages.length;
}
});
//设置ImageSwitcher中的ImageView
switcher.setFactory(new ViewFactory(){
public View
makeView() {
// TODO Auto-generated
method stub
ImageView
image=new ImageView(Scan_pic.this);
image.setScaleType(ImageView.ScaleType.FIT_CENTER);
image.setLayoutParams(newImageSwitcher.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));
return image;
}
});
switcher.setOnClickListener(new OnClickListener(){
public void onClick(View
v) {
// TODO Auto-generated
method stub
Intent
intent=new Intent(Scan_pic.this,StartGame.class);
intent.putExtra("position", postion);
startActivity(intent);
}
});
}
class ImageAdapter extends BaseAdapter{
int[] preImages;
Context context;
TypedArray typedArray;
public ImageAdapter(int[]
preImages,Context context){
this.preImages=preImages;
this.context=context;
typedArray =
obtainStyledAttributes(R.styleable.Gallery); //设置Gallery中的ImageView即每一项的背景
}
public int getCount()
{
// TODO Auto-generated
method stub
return Integer.MAX_VALUE; //通过这个来进行循环
}
public Object
getItem(int position)
{
// TODO Auto-generated
method stub
return position;
}
public long getItemId(int position)
{
// TODO Auto-generated
method stub
return position;
}
public View
getView(int position,
View convertView, ViewGroup parent) {
// TODO Auto-generated
method stub
ImageView
image=new ImageView(context);
image.setImageResource(preImages[position%preImages.length]); //通过这个来进行循环
image.setScaleType(ImageView.ScaleType.FIT_XY);
image.setLayoutParams(new Gallery.LayoutParams(200,
120));
image.setBackgroundResource(typedArray.getResourceId(R.styleable.Gallery_android_galleryItemBackground,
0));
return image;
}
}
}
http://blog.sina.com.cn/s/blog_9968251c01014uu9.html