上一节学习了Gallery,本节结合Gallery来学习ImageSwitcher。
先贴出最终的效果图:
逻辑部分代码:
public class ImageSwitcherActivity extends Activity { private static ImageSwitcher mImageSwitcher; private static Gallery mGallery; private int[] images = { R.drawable.a, R.drawable.b, R.drawable.c, R.drawable.d, R.drawable.e, R.drawable.f, R.drawable.h }; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_imageswitcher); mImageSwitcher = (ImageSwitcher)findViewById(R.id.image_switcher); mGallery = (Gallery)findViewById(R.id.gallery); mImageSwitcher.setFactory(new MyViewFactory(this)); //默认显示中间图片 mImageSwitcher.setImageResource(images[images.length/2]); mGallery.setAdapter(new MyAdapter(this)); mGallery.setSpacing(10); //默认显示中间图片 mGallery.setSelection(images.length/2); //设置监听器, mGallery.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub mImageSwitcher.setImageResource(images[position%images.length]); } }); } class MyViewFactory implements ViewFactory { private Context context; public MyViewFactory(Context context) { this.context = context; } @Override public View makeView() { ImageView view = new ImageView(this.context); view.setBackgroundColor(0xFF000000); //设置显示位置 view.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); return view; } } class MyAdapter extends BaseAdapter { private Context context; public MyAdapter(Context context) { this.context = context; } @Override public int getCount() { // 获取图片资源的总数 //return images.length; return Integer.MAX_VALUE; } @Override public Object getItem(int position) { // 获得图片当前位置 return position; } @Override public long getItemId(int position) { // 获得当前位置的图片ID return images[position]; } @Override public View getView(int position, View convertView, ViewGroup parent) { // 获得当前图片资源 ImageView view = new ImageView(this.context); view.setImageResource(images[position%images.length]); view.setAdjustViewBounds(true); //设置图片的大小 view.setLayoutParams(new Gallery.LayoutParams(100, 100)); //view.setPadding(15, 10, 15, 10); return view; } } }
布局文件如下:
<ImageSwitcher android:id="@+id/image_switcher" android:layout_width="fill_parent" android:layout_height="fill_parent" > </ImageSwitcher> <Gallery android:id="@+id/gallery" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" />
ok。 运行的效果图就是上图所示。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/longwang155069/article/details/46947529