现在的位置: 首页 > 综合 > 正文

继承galary

2013年07月09日 ⁄ 综合 ⁄ 共 1907字 ⁄ 字号 评论关闭

目的:

去除点击item移动,实现左侧对齐显示。

代码:

package com.example.balsfood2;

import java.lang.reflect.Field;

import android.R.attr;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Camera;
import android.graphics.Matrix;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Transformation;
import android.widget.Gallery;


public class AlignLeftGallery extends Gallery {
	 
	public interface IOnItemClickListener {
		public void onItemClick(int position);
	}
	private static final String TAG = "AlignLeftGallery";

    private IOnItemClickListener mListener;
    
    public AlignLeftGallery(Context context, AttributeSet attrs) {
            super(context, attrs);                  
    }
    
    public void setOnItemClickListener(IOnItemClickListener listener) {
    	mListener = listener;
    }
    
    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
 
    	System.out.println("onFling:"+String.valueOf(e2.getX() - e1.getX()));
    	//super. onFling( e1,  e2,  velocityX,  velocityY) ;
        return true;
    }
 
    
    @Override
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) 
    	{
    		System.out.println("onScroll:"+String.valueOf(e2.getX() - e1.getX()));
    		
 
    		
    		if((e2.getX() - e1.getX()) <- 20)
    		setSelection(7); 
    		else if((e2.getX() - e1.getX()) > 20)
    		setSelection(2); 
    		invalidate();
    		//super. onScroll( e1,  e2,  distanceX,  distanceY) ;
    		 return true;
    	}
    
   @Override
	public boolean onSingleTapUp(MotionEvent e) {
    	Log.i(TAG, "onSingleTapUp----------------------");
    	try {
			Field f = AlignLeftGallery.class.getSuperclass().getDeclaredField("mDownTouchPosition");
			f.setAccessible(true);
			int position = f.getInt(this);
			Log.i(TAG, "mDownTouchPosition = " + position);
			if(null != mListener && position >= 0) {
				mListener.onItemClick(position);
			}
		} catch (SecurityException e1) {
			e1.printStackTrace();
		} catch (NoSuchFieldException e1) {
			e1.printStackTrace();
		} catch (IllegalArgumentException e2) {
			e2.printStackTrace();
		} catch (IllegalAccessException e3) {
			e3.printStackTrace();
		} 
		return false;
	}
 
	
}

抱歉!评论已关闭.