`
crazier9527
  • 浏览: 1013646 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android开发之gallery 实现滚动一张且短距离滑动实现滚动

 
阅读更多

首先gallery的特点就不用多说了吧,惯性滚动、半屏翻页,但是很多时候我们不需要它的这些特性。我今天就介绍一下 去掉惯性滚动 以及 短距离翻页的实现: 
代码先晒出来: 
main.xml: 

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7. <com.mh.DetialGallery  android:id="@+id/gallery" android:layout_width="fill_parent"    
  8.         android:layout_height="fill_parent"  />    
  9. </LinearLayout>  


DetialGallery 是自己继承的类。 

Java代码   收藏代码
  1. import android.app.Activity;  
  2. import android.content.Context;  
  3. import android.os.Bundle;  
  4. import android.view.View;  
  5. import android.view.ViewGroup;  
  6. import android.view.Window;  
  7. import android.view.WindowManager;  
  8. import android.widget.BaseAdapter;  
  9. import android.widget.Gallery;  
  10. import android.widget.ImageView;  
  11.   
  12. public class main extends Activity {  
  13.     /** Called when the activity is first created. */  
  14.     @Override  
  15.     public void onCreate(Bundle savedInstanceState) {  
  16.         super.onCreate(savedInstanceState);  
  17.           
  18.         requestWindowFeature(Window.FEATURE_NO_TITLE);  
  19.         getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN ,    
  20.      WindowManager.LayoutParams.FLAG_FULLSCREEN);  
  21.   
  22.         setContentView(R.layout.main);  
  23.         Gallery gallery = (Gallery) findViewById(R.id.gallery);     
  24.         gallery.setAdapter(new ImageAdapter(this));;    
  25.   
  26.     }  
  27.       
  28.     private int[] resIds = new int[]     
  29.          { R.drawable.a1, R.drawable.a2, R.drawable.a3,             
  30.            R.drawable.a4, R.drawable.a5, R.drawable.a6,           
  31.            R.drawable.a7, R.drawable.a8, R.drawable.a9      
  32.          };    
  33.       
  34.       
  35.      
  36.   
  37.  public class ImageAdapter extends BaseAdapter     
  38.     {     
  39.         int mGalleryItemBackground;     
  40.         private Context mContext;     
  41.         
  42.         public ImageAdapter(Context context)     
  43.         {     
  44.             mContext = context;                       
  45.         }    
  46.   
  47.         public int getCount()     
  48.         {     
  49.             return resIds.length;     
  50.         }     
  51.         public Object getItem(int position)     
  52.         {     
  53.             return position;     
  54.         }     
  55.         
  56.         public long getItemId(int position)     
  57.         {     
  58.             return position;     
  59.         }     
  60.           
  61.         public View getView(int position, View convertView, ViewGroup parent)     
  62.         {     
  63.             ImageView imageView = new ImageView(mContext);     
  64.             imageView.setImageResource(resIds[position]);  
  65.             imageView.setScaleType(ImageView.ScaleType.FIT_XY);     
  66.             imageView.setLayoutParams(new Gallery.LayoutParams(480800));   //分辨率自己定  
  67.             return imageView;     
  68.         }     
  69.     }   
  70.   
  71. }  


Java代码   收藏代码
  1. import android.content.Context;  
  2. import android.util.AttributeSet;  
  3. import android.view.KeyEvent;  
  4. import android.view.MotionEvent;  
  5. import android.widget.Gallery;  
  6.   
  7. public class DetialGallery extends Gallery {  
  8.   
  9.     public DetialGallery(Context context ,AttributeSet attrSet) {  
  10.      super(context,attrSet);  
  11.      // TODO Auto-generated constructor stub  
  12.     }  
  13.   
  14.  private boolean isScrollingLeft(MotionEvent e1, MotionEvent e2)  
  15.    {     
  16.     return e2.getX() > e1.getX();   
  17.    }  
  18.  @Override  
  19.  public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,  
  20.    float velocityY) {  
  21.   // TODO Auto-generated method stub  
  22. //  return super.onFling(e1, e2, 0, velocityY);//方法一:只去除翻页惯性  
  23. //  return false;


  24. //方法二:只去除翻页惯性  注:没有被注释掉的代码实现了开始说的2种效果。  
  25.   int kEvent;    
  26.   if(isScrollingLeft(e1, e2)){   
  27.    //Check if scrolling left       
  28.    kEvent = KeyEvent.KEYCODE_DPAD_LEFT;    
  29.    }  else{   
  30.     //Otherwise scrolling right      
  31.     kEvent = KeyEvent.KEYCODE_DPAD_RIGHT;     
  32.     }    
  33.   onKeyDown(kEvent, null);    
  34.   return true;    
  35.   }  
  36.  }  


分享到:
评论

相关推荐

    Android 滑动效果 Gallery

    在早期的Android版本中,Gallery类被广泛用于实现这种效果,但在Android 4.0 (API级别14)之后,它已被废弃,取而代之的是更灵活且功能更强大的RecyclerView和ViewPager。 **Gallery类详解** Gallery是一个线性布局...

    android实现横向滑动解决Gallery从中间滑动的问题

    在Android开发中,有时我们需要创建一个可以横向滑动的视图,类似相册的效果,这在Android早期版本中是通过Gallery组件实现的。然而,Gallery组件在API 16之后就被弃用了,开发者们转向使用其他的组件来替代,如...

    自定义view实现垂直gallery滚动

    总的来说,实现这样一个自定义垂直滚动Gallery,需要深入理解Android的触摸事件处理、视图绘制机制、动画系统以及性能优化策略。这是一个挑战性但富有成就感的任务,可以锻炼开发者对Android底层框架的理解和掌控...

    Android 两个gallery同时滑动

    当需要两个`Gallery`组件同时滑动时,我们可能希望实现一种联动效果,即在一个`Gallery`上滑动时,另一个`Gallery`也随之同步滑动。这在设计上可以提升用户体验,让用户在浏览多个关联内容时更加方便。 要实现这个...

    android 自动滚动图片效果源码

    在Android开发中,实现自动滚动图片的效果是一种常见的需求,尤其在创建轮播图、广告栏或者相册应用时。这个源码是开发者个人实现的一种自动滚动图片的功能,它基于Android的`Gallery`组件。`Gallery`是Android SDK...

    Android 滑动效果 Gallery + GridView

    在Android开发中,滑动效果是用户界面设计中不可或缺的一部分,为用户提供流畅的交互体验。本主题主要聚焦于两种常见的滑动组件:Gallery和GridView,它们都是Android SDK中内置的视图组件,常用于展示多张图片或者...

    android运用gallery浏览图片并自动滑动

    在Android开发中,`Gallery`组件是一个非常实用的控件,它允许用户水平滚动查看一系列的项目,通常用于展示图片或者列表选择。然而,`Gallery`已经在API Level 16(Android 4.1, Jelly Bean)中被弃用,取而代之的是...

    android开发,gallery图片切换

    在Android开发中,`Gallery`组件是一个非常实用的控件,它允许用户通过左右滑动来浏览和选择项目,常用于图片浏览、菜单选择等场景。在这个特定的案例中,我们关注的是如何实现图片的自动切换功能,这在创建图片轮播...

    android滚动插件

    在Android开发中,滚动插件通常用于实现动态、吸引人的用户界面,比如轮播图、滑动图片广告等。这些组件能够展示多张图片,并且往往支持自动无限滚动,为应用增加互动性和视觉吸引力。本篇文章将深入探讨Android中...

    Android Gallery 左对齐,点击禁止滑动 demo

    在Android开发中,`Gallery`组件是早期版本中用于展示一系列水平滚动项目的一个视图控件,常用于图片或选项的浏览。然而,`Gallery`在API 16(Android 4.1 Jelly Bean)之后已被弃用,取而代之的是更强大的`...

    Android Gallery+ActivityGroup实现滑动TAB独立Activity

    总结起来,"Android Gallery+ActivityGroup实现滑动TAB独立Activity"是一种早期的Android开发技术,虽然现在已经被更先进的Fragment所取代,但理解这一模式对于理解Android应用的演化历程以及如何处理旧代码库中的...

    android之文字滚动栏

    在Android开发中,"文字滚动栏"是一种常见的UI元素,尤其在新闻应用、公告界面或者信息展示中,用于展示过多文字内容。这个标题所指的可能是实现一个自定义的TextView或者一个滚动视图,能够自动滚动显示超出视图...

    Android3D画廊Gallery实现无限循环和自动跳转

    在Android开发中,3D Gallery是一种独特且引人入胜的图像展示方式,它通过模拟3D空间中的图片浏览,给用户带来更加生动的交互体验。本教程将深入讲解如何在Android应用中实现一个3D画廊(Gallery)组件,支持无限...

    Android应用源码之Gallery2.zip

    在Android应用开发中,对Gallery组件的源码进行深入理解,能够帮助开发者更好地利用这一功能,优化用户体验,实现更丰富的交互效果。本文将针对"Android应用源码之Gallery2.zip"进行详尽解析。 1. **Gallery组件...

    Android-使用recyclerView实现画廊滑动效果

    包括布局文件(如gallery_item.xml)、适配器类(如GalleryAdapter.java)以及主活动类(如MainActivity.java),通过学习和分析这些文件,你可以更好地理解和掌握如何在Android应用中实现画廊式的RecyclerView滑动...

    Android Gallery 3张图无限循环 左右滑动都有效

    在这个场景中,提到的"Android Gallery 3张图无限循环 左右滑动都有效"是指一个特定的实现,即在`Gallery`中加载三张图片,并且当用户向左或向右滑动时,图片能够无缝地循环,形成一种无限滚动的效果。下面将详细...

    gallery 图片自动滑动

    在Android开发中,`Gallery`是一个旧版的视图控件,用于展示可横向滑动的项目列表,通常用于图片或选项的展示。然而,自Android 3.0(API级别11)起,`Gallery`已被`ViewPager`所替代,因为`ViewPager`提供了更灵活...

    android自定义Gallery Demo实现随手滑动随停去掉两边空白

    在Android开发中,`Gallery`组件是一个非常实用的控件,它允许用户通过左右滑动来展示一系列的图片或视图。然而,原生的`Gallery`存在一些问题,比如默认情况下会有一定的空白间隙,以及在快速滑动时可能会导致定位...

    C# Android Gallery-Dome 图片滑动效果显示

    在Android开发中,实现图片滑动效果是一种常见的需求,尤其在创建相册或者展示产品图集时。"C# Android Gallery-Dome 图片滑动效果显示"是一个项目,旨在利用C#语言为Android平台构建一个类似原生Gallery的图片浏览...

    android 轮播 滑动 图片广告 无限自动滚动 Gallery 能加载网络图片

    请注意看 MainActivity 里的注释 ...功能和 腾讯 应用宝 360手机助手 一样 代码简单 设置简单 自定义圆点 滚动时间 Gallery 实现 滚动图片只有一个类 可加载网络图片 也能使用本地图片 加了好多注释

Global site tag (gtag.js) - Google Analytics