`
flyingsir_zw
  • 浏览: 12450 次
文章分类
社区版块
存档分类
最新评论

gallery 选中图片放大缩小

阅读更多
package com.testgallery.test;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.ScaleAnimation;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.AdapterView.OnItemClickListener;

public class TestGallerActivity extends Activity {
		private Gallery gallery;  
	    private AnimationSet manimationSet;  
	    private int[] imgs;  
	    @Override  
	    public void onCreate(Bundle savedInstanceState) {  
	        super.onCreate(savedInstanceState);  
	        setContentView(R.layout.main);  
	        init();  
	    }  
	    private void init(){  
	        imgs=new int[]{R.drawable.a,R.drawable.c,R.drawable.b};  
	        gallery = (Gallery)findViewById(R.id.gy_main);  
	        ImageAdapter imgAdapter = new ImageAdapter(this,imgs);  
	        gallery.setAdapter(imgAdapter);  
	        gallery.setSelection(imgs.length/2); 
	        gallery.setOnItemClickListener(listener);  
	          
	    }  
	    int temp = 10;
	    private OnItemClickListener listener = new  OnItemClickListener(){  
	        @Override  
	        public void onItemClick(AdapterView<?> parent, View view, int position,  
	                long id) {  
	            if(position != temp){  
	            	temp = position;
	                AnimationSet animationSet = new AnimationSet(true);  
	                if(manimationSet!=null&&manimationSet!=animationSet){  
//	                     ScaleAnimation scaleAnimation = new ScaleAnimation(1,0.5f,1,0.5f,  
//	                             Animation.RELATIVE_TO_SELF,0.5f,   //使用动画播放图片  
//	                              Animation.RELATIVE_TO_SELF,0.5f);  
//	                            scaleAnimation.setDuration(1000);  
//	                            manimationSet.addAnimation(scaleAnimation);  
//	                            manimationSet.setFillAfter(true); //让其保持动画结束时的状态。  
//	                           view.startAnimation(manimationSet);  
	                	if(null!=manimationSet)manimationSet.setFillAfter(false);  
	                }  
	                     ScaleAnimation scaleAnimation = new ScaleAnimation(1f,1.5f,1f,1.5f,   
	                             Animation.RELATIVE_TO_SELF,0.5f,   
	                             Animation.RELATIVE_TO_SELF,0.5f);  
	                           scaleAnimation.setDuration(1000);  
	                           animationSet.addAnimation(scaleAnimation);  
	                           animationSet.setFillAfter(true);   
	                           view.startAnimation(animationSet);  
	                           manimationSet = animationSet;  
	                }else{  
	                	if(null!=manimationSet)manimationSet.setFillAfter(false);  
	                }  
	        }  
	    };  
	    class ImageAdapter extends BaseAdapter{  
	        private Context ct;  
	        private int[] data;  
	        public ImageAdapter(Context ct,int[] data){  
	            this.ct=ct;  
	            this.data=data;  
	        }  
	        @Override  
	        public int getCount() {  
	            return data.length;  
	        }  
	        @Override  
	        public Object getItem(int position) {  
	            return data[position];  
	        }  
	        @Override  
	        public long getItemId(int position) {  
	            return position;  
	        }  
	        @Override  
	        public View getView(int position, View convertView, ViewGroup parent) {  
	            View view = null;  
	            if(convertView==null){  
	                ImageView img = new ImageView(ct);  
	                img.setImageResource(data[position]);  
	                view=img;  
	            }else{  
	                view=convertView;  
	            }  
	            return view;  
	        }  
	    } 
}
分享到:
评论

相关推荐

    android 循环gallery 选中放大 按键控制

    本篇将详细讲解如何实现一个具有循环滚动、选中放大功能,并且可以使用按键控制的`Gallery`。 首先,我们需要在布局文件中添加`Gallery`组件。`Gallery`的XML属性包括`android:id`用于标识控件,`android:layout_...

    android 循环gallery 选中时图片放大 可按钮控制左右

    通过以上步骤,我们成功地实现了Android Gallery组件的循环滚动、图片选中放大以及左右按钮控制切换的功能,同时还为选中图片添加了弹出动画效果。在实际项目中,可能还需要根据具体需求进行优化,例如添加图片加载...

    一个用RecyclerView实现的画廊效果,被选中item居中放大,效果很自然。

    总的来说,这个“画廊”效果结合了RecyclerView的灵活性和强大的自定义能力,通过自定义ViewHolder、LayoutManager、Adapter和触摸事件处理,实现了选中item居中放大这一独特效果。这样的设计既提高了用户体验,也...

    Android基于Gallery的图片播放器

    在这个回调中,我们需要获取选中的图片索引,并将该图片设置到`ImageSwitcher`中。 4. **动画设置**:为了让图片切换更流畅,我们可以在`ImageSwitcher`中设置动画效果。可以使用`setImageResource`或`...

    Android++gallery实现选中放大的效果

    总结一下,要在Android的`Gallery`组件中实现选中放大的效果,主要步骤包括:创建`Gallery`布局,编写自定义适配器,重写`getView()`以处理点击事件并启动缩放动画。这种方法可以显著提升用户在浏览图片或联系人时的...

    android gallery实现图片拖动

    在图片画廊应用中,当用户点击`Gallery`中的图片时,`ImageSwitcher`可以用来展示被选中的图片,以全屏模式显示。你可以将`ImageSwitcher`设置为`ViewFlipper`的子类,并在`Gallery`的`onItemClick()`监听器中,根据...

    多点触控 图片的缩放

    本文将深入探讨如何实现对指定图片的多点触控缩放功能,以及如何利用gallery容器来存储和展示多张图片。 一、多点触控基础 多点触控(Multi-Touch)是指通过两个或更多个触点同时与屏幕进行交互的技术。在Android和...

    android画廊效果,中间图片变大

    画廊效果允许用户通过横向滑动来浏览多张图片,而“中间图片变大”则是一种增强用户体验的设计,它使得当前选中的图片在视觉上更加突出,给用户带来更强烈的沉浸感。以下将详细介绍实现这种效果的关键知识点。 1. *...

    图片浏览(带水平滑动的GridView和带gallery的ViewPage)

    本教程主要探讨如何实现一个带有水平滑动的GridView以及一个具备Gallery功能的HorizontalScrollView,并且介绍如何在ViewPage中支持图片缩放和网络图片的显示。 首先,让我们来看看“带水平滚动的GridView”。传统...

    Gallery 图片滑动 手动滑动

    在Android开发中,`Gallery`控件是一种非常实用的组件,它主要用于展示一系列横向滑动的图片或视图,常用于相册应用、菜单选择等场景。本篇将详细讲解`Gallery`控件的使用方法,以及如何实现手动滑动效果。 首先,`...

    android Gallery 拖动式 图片浏览

    在实际应用中,我们还可以添加监听器来处理用户滚动`Gallery`时的事件,例如获取当前选中的图片索引,或者执行相应的操作: ```java gallery.setOnItemClickListener(new AdapterView.OnItemClickListener() { @...

    android 动态向Gallery中添加图片及倒影&&3D;效果

    当用户在`Gallery`中选择一个新项时,触发一个动画,让当前选中的图片以3D方式翻转到下一位置。你可以使用`ObjectAnimator`或者`ValueAnimator`来创建这种动画,改变图片的`rotationY`属性,模拟3D翻转。同时,为了...

    自定义Gallery 滑动中图片自动突出显示

    尽管如此,开发者有时仍会根据需求自定义Gallery实现特定功能,例如在滑动时让当前选中的图片自动突出显示。这篇博客"自定义Gallery 滑动中图片自动突出显示"正是讨论了如何在旧版Gallery上实现这种效果。 首先,...

    Gallery+ImageSwitcher组合显示图片

    `Gallery`将用于显示所有可用图片的预览,而`ImageSwitcher`则用来显示当前选中的大图。 2. 给`Gallery`设置一个适配器(Adapter),这个适配器通常继承自`BaseAdapter`,并实现其中的方法如`getCount()`、`getItem...

    UI开发之Android gallery实现图片的循环旋转

    最后,我们可以为`Gallery`添加一个`OnItemSelectedListener`监听器,以便在用户选择不同图片时执行相应操作,如显示选中图片的详细信息或者执行其他交互逻辑。 通过以上步骤,我们成功实现了Android `Gallery`组件...

    Android Gallery轮播图

    在`Gallery`的`onItemSelected()`回调中,为当前选中的图片和即将选中的图片分别添加缩放动画。通过设置动画的开始和结束值,可以控制图片的放大和缩小效果。 5. **事件监听**: 设置`OnItemSelectedListener`监听...

    Android利用Gallery和ImageSwitcher实现在线相册图片预览功能(异步加载图片).zip

    2. **监听`Gallery`的选中事件**:使用`OnItemSelectedListener`监听用户选择的图片,获取选中项的索引。 3. **异步加载图片**:根据索引值从服务器或本地缓存中获取图片,使用异步加载库加载图片到`ImageSwitcher`...

    3D滑动页面效果关联gallery滑动

    例如,当页面向左滑动时,可以将当前页面缩小并稍微旋转,同时将下一个页面放大并反向旋转,这样就能呈现出3D翻页的效果。 接下来,我们要将`ViewPager`的滑动与`Gallery`组件关联起来。`Gallery`是一个横向滚动的...

    Android图片拖动、点击放大效果

    本项目"Android图片拖动、点击放大效果"提供了一个具体的解决方案,利用Gallery组件和ScaleAnimation类来达到目标。 首先,Gallery组件是Android SDK中的一个特殊视图,它允许用户水平滚动一系列的视图,类似于iOS...

Global site tag (gtag.js) - Google Analytics