Android使用ImageSwitcher+Gallery实现图片切换

Android应用开发中少不了同图片数据打交道,无论是头像还是图片相册之类的等等。有些时候在图片较多的时候,我们就要通过切换的方式来查看图片,实现方式很多,要以用ViewPager实现切换,这也是目前用得比较普遍的,也可以用viewflipper还实现,也可以自定义工具类来实现…..,今天我们用的是Android自带的两个原生控件来实现图片切换效果。本想贴图的,但是发现发布CSDN博客贴图真的有些不方便,所以就分偷懒了~~

————————————–界面布局文件:activity_image_viewer.xml——————————-

<LinearLayout xmlns:android="" xmlns:tools="" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ImageSwitcher android:id="@+id/imageSwitcher" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="4" > </ImageSwitcher> <Gallery android:id="@+id/gallery" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:spacing="10sp" /></LinearLayout>

—————————————图片item布局image_viewer_item.xml————————————-

<RelativeLayout xmlns:android="" xmlns:tools="" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="wrap_content" /></RelativeLayout>

———————————————————————–ImageViewerActivity相关代码———————————————————–

public class ImageViewerActivity extends Activity implements OnItemSelectedListener, ViewFactory {/**Gallery控件 */private Gallery mGallery;/**ImageSwitcher控件 */private ImageSwitcher mImageSwitcher;/**选中图片的索引*/private int selectedIndex = 0;/**松开手指时坐标*/private int upX;/**按下手指时坐标*/private int downX;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_image_viewer);findViews();init();}/**初始化UI */private void findViews() {mGallery = (Gallery) findViewById(R.id.gallery);mImageSwitcher = (ImageSwitcher) findViewById(R.id.imageSwitcher);mGallery.setOnItemSelectedListener(this);mImageSwitcher.setOnTouchListener(onTouchListener);}/**设置参数 */private void init() {/**图片适配器 */ImageViewerAdapter imageAdapter = new ImageViewerAdapter(this);mGallery.setAdapter(imageAdapter);/**手指滑动时,相互切换 */mImageSwitcher.setFactory(this);}@Overridepublic void onItemSelected(AdapterView<?> parent, View view, int position, long id) {mImageSwitcher.setImageResource(ImageViewerAdapter.images[position]);selectedIndex = position;}/**ImageSwitcher手机滑动监听事件 */private OnTouchListener onTouchListener = new OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {if (event.getAction() == MotionEvent.ACTION_DOWN) {downX = (int) event.getX();return true;} else if (event.getAction() == MotionEvent.ACTION_UP) {upX = (int) event.getX();}if (upX – downX > 100) {/**从左拖到右,即看前一张,如果是第一,,则去到尾部*/if (mGallery.getSelectedItemPosition() == 0)selectedIndex = mGallery.getCount() – 1;else selectedIndex = mGallery.getSelectedItemPosition() – 1;}if (downX – upX > 100) {/**从右拖到左,即看后一张,如果是最后,则去到第一*/if (mGallery.getSelectedItemPosition() == (mGallery.getCount() – 1))selectedIndex = 0;else selectedIndex = mGallery.getSelectedItemPosition() + 1;}mGallery.setSelection(selectedIndex, true);return true;}};@Overridepublic void onNothingSelected(AdapterView<?> parent) {}@Overridepublic View makeView() {ImageView imageView = new ImageView(this);/**设置伸缩比例*/imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);imageView.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));return imageView;}}

———————————————————————–数据适配器ImageViewerAdapter相关代码——————————————————-

未曾失败的人恐怕也未曾成功过。

Android使用ImageSwitcher+Gallery实现图片切换

相关文章:

你感兴趣的文章:

标签云: