本文实例讲述了android实现自动滚动的Gallary控件。分享给大家供大家参考。具体如下:

import java.util.Timer;import java.util.TimerTask;import android.content.Context;import android.os.Handler;import android.util.AttributeSet;import android.util.Log;import android.view.KeyEvent;import android.view.MotionEvent;import android.widget.Gallery;public class HomeGallery extends Gallery{  /**   * 这里的数值,限制了每次滚动的最大长度,图片宽度为480PX。这里设置600效果好一些。 这个值越大,滚动的长度就越大。   * 也就是会出现一次滚动跨多个Image。这里限制长度后,每次滚动只能跨一个Image   */  private static final int timerAnimation = 1;  private static final int time = 2000;  private final Handler mHandler = new Handler()  {    public void handleMessage(android.os.Message msg)    {      switch (msg.what)      {      case timerAnimation:        int position = getSelectedItemPosition();        Log.i("msg", "position:"+position);        if (position >= (getCount() - 1))        {          onKeyDown(KeyEvent.KEYCODE_DPAD_LEFT, null);        } else        {          onKeyDown(KeyEvent.KEYCODE_DPAD_RIGHT, null);        }        break;      default:        break;      }    };  };  private final Timer timer = new Timer();  private final TimerTask task = new TimerTask()  {    public void run()    {      mHandler.sendEmptyMessage(timerAnimation);    }  };  public HomeGallery(Context paramContext)  {    super(paramContext);    timer.schedule(task, time, time);  }  public HomeGallery(Context paramContext, AttributeSet paramAttributeSet)  {    super(paramContext, paramAttributeSet);    timer.schedule(task, time, time);  }  public HomeGallery(Context paramContext, AttributeSet paramAttributeSet,      int paramInt)  {    super(paramContext, paramAttributeSet, paramInt);    timer.schedule(task, time, time);  }  private boolean isScrollingLeft(MotionEvent paramMotionEvent1,      MotionEvent paramMotionEvent2)  {    float f2 = paramMotionEvent2.getX();    float f1 = paramMotionEvent1.getX();    if (f2 > f1)      return true;    return false;  }  public boolean onFling(MotionEvent paramMotionEvent1,      MotionEvent paramMotionEvent2, float paramFloat1, float paramFloat2)  {    int keyCode;    if (isScrollingLeft(paramMotionEvent1, paramMotionEvent2))    {      keyCode = KeyEvent.KEYCODE_DPAD_LEFT;    } else    {      keyCode = KeyEvent.KEYCODE_DPAD_RIGHT;    }    onKeyDown(keyCode, null);    return true;  }  public void destroy()  {    timer.cancel();  }}

希望本文所述对大家的Android程序设计有所帮助。

更多相关文章

  1. Android 建立文件夹、生成文件并写入文本文件内容
  2. android EditView自动判断输入长度,并限制字数,然后将光标停在最后
  3. android 使用InputFilter 对金额和长度进行限制
  4. TextView多行本文滚动轻松实现
  5. Android ImageView设置长度高度为wrap_content时高度根据图片比
  6. TextView实现多行本文滚动
  7. [Android]TextUtils.ellipsize()截取指定长度字符串(附图文混排)
  8. android:TextView单行显示设定字符长度,超过后面为省略号
  9. android中的字符长度

随机推荐

  1. 快速提高Python数据分析速度的八个技巧
  2. 动画:什么是闭包?
  3. 收下这份来自GitHub的神器,一图搞定Matplo
  4. 简单4步用FLASK/Django部署你的Pyecharts
  5. Python解放双手系列——用python自动追踪
  6. 动画:二叉树有几种存储方式?(上)
  7. Matplotlib:先搞明白plt. /ax./ fig再画
  8. 常用统计检验的Python实现
  9. 上班摸鱼系列|Python开发命令行斗地主
  10. 使用Python进行数据降维|线性降维