画廊控件(Gallery)
1、首先给大家展示一个示例:(看一下Java代码)
public class AActivity extends Activity {
ImageSwitcher imgSwt;
Gallery glr;
//需要显示的图片资源,保存在drawable目录下
int[] imgs={
R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d,R.drawable.e,R.drawable.f,R.drawable.g
};
//缓存底部在Gallery中使用的ImageView
ImageView[] galleryViews=new ImageView[imgs.length];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_a);
imgSwt=(ImageSwitcher)findViewById(R.id.imgSwt);
glr=(Gallery)findViewById(R.id.glr);
//设置ImageSwitcher显示图片的工厂
imgSwt.setFactory((new ViewFactory()
{
@Override
public View makeView()
{
ImageView iv=new ImageView(AActivity.this);
iv.setBackgroundColor(0xFF000000);
iv.setScaleType(ImageView.ScaleType.FIT_CENTER);
iv.setLayoutParams(new ImageSwitcher.LayoutParams(
LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
return iv;
}
}));
//设置ImageSwitcher的进入动画
imgSwt.setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_in));
//设置ImageSwitcher的退出动画
imgSwt.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out));
//初始化缓存Gallery使用的ImageView
for (int i = 0; i < galleryViews.length; i++)
{
ImageView iv=new ImageView(AActivity.this);
iv.setImageResource(imgs[i]);
iv.setAdjustViewBounds(true);
iv.setLayoutParams(new Gallery.LayoutParams(
LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
galleryViews[i]=iv;
}
//设置Gallery的适配器
glr.setAdapter(new BaseAdapter(){
@Override
public int getCount(){
return imgs.length;
}
@Override
public Object getItem(int position){
return null;
}
@Override
public long getItemId(int position)
{
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
// TODO Auto-generated method stub
return galleryViews[position];
}
});
//Gallery被选中的事件
glr.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> arg0,View arg1,int arg2,long arg3)
{
imgSwt.setImageResource(imgs[arg2]);
}
@Override
public void onNothingSelected(AdapterView<?> arg0){
//
}
});
}
}
2、它的XML 布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageSwitcher
android:id="@+id/imgSwt"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Gallery
android:id="@+id/glr"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
3、其显示出来的效果图:
上面运用了tabhost组件,下面用是一个画廊空间