先上图吧:
共有美工做好的4张图片,当浏览到最后一页时点击进入客户端。
点击第四涨图片之后进入客户端。
首先定义一个Gallery,我这里为了取消android系统的Gallery的惯性滚动实现短距离滚动,而自定义了一个SlowGallery.java
package com.test.gallery; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.KeyEvent; import android.view.MotionEvent; import android.widget.Gallery; /** * Gallery 取消惯性滚动 实现短距离滚动 * @author wenjie * */ public class SlowGallery extends Gallery { public SlowGallery(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public SlowGallery(Context context) { super(context); } public SlowGallery(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { // 只需要去除翻页惯性 - 方法1: // return super.onFling(e1, e2, 0, velocityY); // 只需要去除翻页惯性 - 方法2: // return false; // 实现短距离滚动: int kEvent; if (isScrollingLeft(e1, e2)) { // Check if scrolling left kEvent = KeyEvent.KEYCODE_DPAD_LEFT; } else { // Otherwise scrolling right kEvent = KeyEvent.KEYCODE_DPAD_RIGHT; } onKeyDown(kEvent, null); return true; } @Override public boolean onDown(MotionEvent e) { return super.onDown(e); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub return super.onKeyDown(keyCode, event); } @Override public boolean onKeyUp(int keyCode, KeyEvent event) { // TODO Auto-generated method stub return super.onKeyUp(keyCode, event); } @Override public boolean onTouchEvent(MotionEvent event) { // TODO Auto-generated method stub return super.onTouchEvent(event); } private boolean isScrollingLeft(MotionEvent e1, MotionEvent e2) { return e2.getX() > e1.getX(); } }
第二步:在Activity中展示图片即可,这里需要用到一个适配器,我直接写了个内部类ImageAdapter.java
public class ImageAdapter extends BaseAdapter { int mGalleryItemBackground; private Context mContext; public ImageAdapter(Context context) { mContext = context; } public int getCount() { return resIds.length; } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { textView.setText((position+1)+"/"+resIds.length); ImageView i = new ImageView(mContext); i.setImageResource(resIds[position]);//给ImageView设置资源 i.setLayoutParams(new Gallery.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));//设置布局 图片200×200显示 i.setScaleType(ImageView.ScaleType.FIT_XY);//设置比例类型 return i; } }
第三步:给SlowGallery对象添加点击事件,也很简单的。
直接调用setOnItemClickListener(new AdapterView.OnItemClickListener()方法即可。
好了,今天到这里了,运行不了需要源码的朋友留下邮箱,我抽时间传给大家。