Spinner与Gallery
一 Spinner
显示的是一个垂直的列表选择框,继承于AbsSpinner。
1 基本用法
布局:
<Spinner android:entries="@array/books" android:prompt="@string/tip" android:layout_width="match_parent" android:layout_height="wrap_content"/> <Spinner android:id="@+id/spinner" android:prompt="@string/tip" android:layout_width="match_parent" android:layout_height="wrap_content"/>
使用:
Spinner spinner = (Spinner) findViewById(R.id.spinner); String[] strings = {"猪八戒","孙悟空","唐僧"}; ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,R.layout.item_spinner,strings); spinner.setAdapter(arrayAdapter);
效果:
二Gallery
Gallery是画廊视图,显示的是一个水平的列表选择框,也继承于AbsSpinner。
1 基本用法
布局:
<!--非关键代码已省略--> <ImageView android:id="@+id/imgVIew" android:layout_gravity="center" android:layout_width="300dp" android:layout_height="300dp" /> <Gallery android:id="@+id/gallery" android:layout_marginTop="10dp" android:padding="10dp" android:gravity="center" android:layout_width="match_parent" android:layout_height="wrap_content" android:unselectedAlpha="0.6"/>
Adapter:
public class GalleryAdapter extends BaseAdapter { private int[] imgIds; private Context context; public GalleryAdapter(Context context,int[] imgIds) { this.imgIds = imgIds; this.context = context; } @Override public int getCount() { return imgIds == null ? 0 : imgIds.length; } @Override public Object getItem(int position) { return imgIds[position]; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolde holde = null; if (convertView == null){ convertView = LayoutInflater.from(context).inflate(R.layout.item_gallery,parent,false); holde = new ViewHolde(); holde.imageView = (ImageView) convertView.findViewById(R.id.item_img); convertView.setTag(holde); }else { holde = (ViewHolde) convertView.getTag(); } holde.imageView.setImageResource(imgIds[position]); return convertView; } static class ViewHolde{ public ImageView imageView; } }
item的XML文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="match_parent"> <ImageView android:id="@+id/item_img" android:layout_marginRight="10dp" android:layout_width="100dp" android:layout_height="100dp" /> </LinearLayout>
使用:
Gallery gallery = (Gallery) findViewById(R.id.gallery); //设置动画时间 gallery.setAnimationDuration(5000); //设置未选中图片的透明度 gallery.setUnselectedAlpha(0.6f); final ImageView imgVIew = (ImageView) findViewById(R.id.imgVIew); imgVIew.setImageResource(R.mipmap.ic_launcher); imgVIew.setScaleType(ImageView.ScaleType.FIT_XY); //图片资源 final int[] imgIds = {R.mipmap.pic_1,R.mipmap.pic_2,R.mipmap.pic_3,R.mipmap.pic_4,R.mipmap.pic_5}; GalleryAdapter adapter = new GalleryAdapter(this,imgIds); gallery.setAdapter(adapter); gallery.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { imgVIew.setImageResource(imgIds[position]); } });
效果: