Android UI控件之Gallery实现拖动式图片浏览效果

Android UI控件之Gallery实现拖动式图片浏览效果,第1张

概述我们知道现在智能手机上都有这样一种功能,就是你在浏览图片的时候。不是硬性的点击按钮而是可以实现手指的拖动,划开效果。使用户具有更好的交互体验,不过这种效果是如何实现的呢?

我们知道现在智能手机上都有这样一种功能,就是你在浏览图片的时候。不是硬性的点击按钮而是可以实现手指的拖动,划开效果。使用户具有更好的交互体验,不过这种效果是如何实现的呢?

在AndroID中是通过gallery来实现拖动效果的。

通过gallery可以实现各种各样的效果,此篇文章只是简要谈谈他的用法,至于后续的一些效果

有机会的时候做一个整理。 

首先看看其简单实现吧!本次实例是通过选取图片实现类似设置背景的功能!

不过需要说明的是:图片不宜过大,否则容易内存溢出,androID对大图片的支持不好!

我们来看看切换之后的效果吧

看看重新设置一幅背景图片!

怎么样一个简单的效果就出来了吧!

下面是具体的实现方法:

xml文件:

<?xml version="1.0" enCoding="utf-8"?> <linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"   androID:orIEntation="vertical"   androID:layout_wIDth="fill_parent"   androID:layout_height="fill_parent"   >  <gallery   androID:ID="@+ID/gallery1"  androID:layout_height="fill_parent"   androID:layout_wIDth="fill_parent"  androID:spacing="3px"   >  </gallery> </linearLayout> 

 MainActivity文件:

package com.kiritor.ui_gallery;  import androID.app.Activity; import androID.graphics.color; import androID.os.Bundle; import androID.vIEw.VIEw; import androID.Widget.AdapterVIEw; import androID.Widget.AdapterVIEw.OnItemClickListener; import androID.Widget.gallery; import androID.Widget.Toast;  /**  * @author 记忆的永恒  *  */ public class MainActivity extends Activity {   @OverrIDe   public voID onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentVIEw(R.layout.activity_main);      final gallery gallery = (gallery) findVIEwByID(R.ID.gallery1);     // 将存放图片的ImageAdapter给gallery对象     gallery.setAdapter(new ImageAdapter(this));      // 设置gallery 的背景图片     gallery.setBackgroundResource(R.drawable.first);      // 设置gallery的监听事件     gallery.setonItemClickListener(new OnItemClickListener() {       @OverrIDe       public voID onItemClick(AdapterVIEw<?> arg0,VIEw arg1,int arg2,long arg3) {         switch (arg2) {         case 0:           gallery.setBackgroundResource(R.drawable.first);           break;         case 1:           gallery.setBackgroundResource(R.drawable.second);           break;         case 2:           gallery.setBackgroundResource(R.drawable.third);           break;         case 3:           gallery.setBackgroundResource(R.drawable.forth);           break;         case 4:           gallery.setBackgroundResource(R.drawable.fifth);           break;         default:           break;         }       }     });   } } 

 自己实现一个ImageAdapter继承与BaseAdapter实现适配器

package com.kiritor.ui_gallery;  import androID.content.Context;  import androID.vIEw.VIEw;  import androID.vIEw.VIEwGroup;  import androID.Widget.BaseAdapter;  import androID.Widget.gallery;  import androID.Widget.ImageVIEw;  public class ImageAdapter extends BaseAdapter{  //定义Content  private Context mContext;  //定义一个数组,存放图片资源  private Integer[] mImageIDs = {    R.drawable.first,R.drawable.second,R.drawable.third,R.drawable.forth,R.drawable.fifth,};   //构造   public ImageAdapter(Context c){    mContext = c;   }     //获取图片的个数   public int getCount() {    // Todo auto-generated method stub    return mImageIDs.length;   }     //获取图片在库中的位置   public Object getItem(int position) {    // Todo auto-generated method stub    return position;   }     //获取图片在库中的ID   public long getItemID(int position) {    // Todo auto-generated method stub    return position;   }   //将图片取出来   public VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent) {    //要取出图片,即要定义一个ImageVIEw来存    ImageVIEw imageVIEw = new ImageVIEw(mContext);    imageVIEw.setimageResource(mImageIDs[position]);    //设置显示比例类型        //设置布局图片以105*150显示 (简单解释――设置数字不一样,图片的显示大小不一样)   imageVIEw.setLayoutParams(new gallery.LayoutParams(240,200));      imageVIEw.setScaleType(ImageVIEw.ScaleType.FIT_CENTER);    return imageVIEw;   }  } 

 Over!一个简单的图片拖动展示外加设置背景图片的小功能就实现了。

下面是项目完整代码部分:Gallery实现拖动式图片浏览效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的Android UI控件之Gallery实现拖动式图片浏览效果全部内容,希望文章能够帮你解决Android UI控件之Gallery实现拖动式图片浏览效果所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1143325.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存