`

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

阅读更多
首先gallery的特点就不用多说了吧,惯性滚动、半屏翻页,但是很多时候我们不需要它的这些特性。我今天就介绍一下 去掉惯性滚动 以及 短距离翻页的实现:
代码先晒出来:
main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<com.mh.DetialGallery  android:id="@+id/gallery" android:layout_width="fill_parent"  
        android:layout_height="fill_parent"  />  
</LinearLayout>

DetialGallery 是自己继承的类。
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;

public class main extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN ,  
     WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.main);
        Gallery gallery = (Gallery) findViewById(R.id.gallery);   
        gallery.setAdapter(new ImageAdapter(this));;  

    }
    
    private int[] resIds = new int[]   
         { R.drawable.a1, R.drawable.a2, R.drawable.a3,           
           R.drawable.a4, R.drawable.a5, R.drawable.a6,         
           R.drawable.a7, R.drawable.a8, R.drawable.a9    
         };  
    
    
   

 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)   
        {   
            ImageView imageView = new ImageView(mContext);   
            imageView.setImageResource(resIds[position]);
            imageView.setScaleType(ImageView.ScaleType.FIT_XY);   
            imageView.setLayoutParams(new Gallery.LayoutParams(480, 800));   //分辨率自己定
            return imageView;   
        }   
    } 

}

import android.content.Context;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.widget.Gallery;

public class DetialGallery extends Gallery {

    public DetialGallery(Context context ,AttributeSet attrSet) {
     super(context,attrSet);
     // TODO Auto-generated constructor stub
    }

 private boolean isScrollingLeft(MotionEvent e1, MotionEvent e2)
   {   
    return e2.getX() > e1.getX(); 
   }
 @Override
 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
   float velocityY) {
  // TODO Auto-generated method stub
//  return super.onFling(e1, e2, 0, velocityY);//方法一:只去除翻页惯性
//  return false;//方法二:只去除翻页惯性  注:没有被注释掉的代码实现了开始说的2种效果。
  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;  
  }
 }


让Android自带的Gallery实现多点缩放,拖动和边界回弹效果,效果流畅
http://www.havenliu.com/android/668.html
分享到:
评论

相关推荐

    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-使用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 实现 滚动图片只有一个类 可加载网络图片 也能使用本地图片 加了好多注释

    通过SurfaceView实现像Gallery手势滑动图片效果

    在Android开发中,实现类似Gallery应用的手势滑动图片效果是一项常见的需求,这通常涉及到对UI组件的深入理解和高效的图像处理。在这个项目中,我们利用SurfaceView来达到这个目的。SurfaceView是Android系统提供的...

Global site tag (gtag.js) - Google Analytics