我们知道现在智能手机上都有这样一种功能,就是你在浏览图片的时候。不是硬性的点击按钮而是可以实现手指的拖动,划开效果。使用户具有更好的交互体验,不过这种效果是如何实现的呢?
在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实现拖动式图片浏览效果所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)