android基础->拖动效果(Gallery)

      相信大家都对IPone的拖动效果情有独钟吧!这是一个比较炫的效果,Android也可以时间这个效果,而且并不难。要实现这个效果需要一个容器来存放Gallery显示的图片,可以使用一个BaseAdapter类的派生来来装这些图片。然后需要监听其事件setOnItemClickListener,从而确定用户选择哪一张图片。要实现这些,首先,要把需要显示的所有的图片的索引放在一个int的数组当中。接着通过setImageResource方法来设置ImageView要显示的图片资源,最后将每张图片的ImageView显示在屏幕上。

    话不多说,下面看看效果图:

    android基础->拖动效果(Gallery)_第1张图片 android基础->拖动效果(Gallery)_第2张图片

    下面是具体的实现代码:

 首先看看布局文件是如果实现Gallery的

<?xml version="1.0" encoding="utf-8"?> <Gallery xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/Gallery" android:layout_width="fill_parent" android:layout_height="wrap_content" />

        其次是存放这些ImageAdapter资源的实现,代码清单如下

package blog.teasub.gallery.demo; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Gallery; import android.widget.ImageView; /** * @author Administrator * */ public class ImageAdapter extends BaseAdapter { //定义Context private Context mContext ; //定义图片资源,用整形数组保存 private Integer[] imageIds = { R.drawable.imag1, R.drawable.imag2, R.drawable.imag3 }; //初始化ImageAdapter public ImageAdapter(Context _mContext){ mContext = _mContext ; } @Override public int getCount() { return imageIds.length; } /* 获取图片的位置 * (non-Javadoc) * @see android.widget.Adapter#getItem(int) */ @Override public Object getItem(int position) { return position; } /* 获取图片的位置 * (non-Javadoc) * @see android.widget.Adapter#getItemId(int) */ @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View converView, ViewGroup parent) { // TODO Auto-generated method stub ImageView imageView = new ImageView(mContext) ; //设置ImageView的资源 imageView.setImageResource(imageIds[position]); //设置图片以120*120显示 imageView.setLayoutParams(new Gallery.LayoutParams(360 , 500)) ; //设置比例显示类型 imageView.setScaleType(ImageView.ScaleType.FIT_CENTER) ; return imageView; } }

最后我们通过setAdapter方法把资源文件添加到Gallery显示,代码清单如下:

package blog.teasub.gallery.demo; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.Gallery; import android.widget.Toast; import android.widget.AdapterView.OnItemClickListener; public class GalleryDemo extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //获取Gallery对象 Gallery gallery = (Gallery)findViewById(R.id.Gallery); //设置ImageAdapter对象给Gallery gallery.setAdapter(new ImageAdapter(this)) ; //Gallery的监听事件 gallery.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View v, int position, long id) { Toast.makeText(GalleryDemo.this, "您选择了"+(position + 1) + "号图片" , Toast.LENGTH_SHORT).show(); } }); } }

就这样实现了拖动的效果,代码并不多,实现起来也不难

 

 

你可能感兴趣的:(android基础->拖动效果(Gallery))