`

实现安卓控件动画GridView

阅读更多

                    我们学了那么多动画,有没有想给控件实现动画呢,这里我们利用以前学过的GridView实现相册图片

缩略的动画效果。

首先我们anim_set文件.xml定义

实现平移缩放的xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate 
     android:fromXDelta="0.0"
     android:toXDelta="50%"
     android:fromYDelta="0.0"
     android:toYDelta="150%"
     android:duration="3000" />
     <scale
       android:fromXScale="1.0"
       android:toXScale="0.0"
       android:fromYScale="1.0"
       android:toYScale="0.0"
       android:repeatCount="3"
       android:pivotX="50%"
       android:pivotY="50%"
       android:startOffset="100"
       android:duration="3000" 
        
        />

</set>

 

然后设置layout_animation.xml

<?xml version="1.0" encoding="utf-8"?>

      <layoutAnimation
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:delay="0.5"
        android:animationOrder="random"
        android:animation="@anim/anim_set"/>

 接下来定义主布局函数main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
   
    tools:context=".LayoutDemo" >

    <GridView
        android:id="@+id/gridView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layoutAnimation="@anim/layout_animation"
        android:stretchMode="columnWidth"
        android:numColumns="3" >
    </GridView>

</RelativeLayout>

 

接下来我们定义GridView适配器,我们继承BaseAdapter

public class ImageAdapter extends BaseAdapter{
    private Context c;
    private List<Integer> list=new ArrayList<Integer>();
	public ImageAdapter(Context c){
		this.c=c;
		this.initpic();
		
	}
	public int getCount() {
		// TODO Auto-generated method stub
		return list.size();
	}

	@Override
	public Object getItem(int arg0) {
		// TODO Auto-generated method stub
		return list.get(arg0);
	}

	@Override
	public long getItemId(int arg0) {
		// TODO Auto-generated method stub
		return list.get(arg0).intValue();
	}

	@Override
	public View getView(int position, View v, ViewGroup arg2) {
		ImageView image=new ImageView(this.c);
		image.setBackgroundColor(0xFF000000);
		image.setImageResource(list.get(position));
		image.setScaleType(ImageView.ScaleType.CENTER);
		image.setLayoutParams(new GridView.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
		image.setPadding(3, 3, 3, 3);
		return image;

	}
	public void initpic(){
		Field[] fields=R.drawable.class.getDeclaredFields();
		for(int i=0;i<fields.length;i++){
			if(fields[i].getName().startsWith("pic")){
				try {
					this.list.add(fields[i].getInt(R.drawable.class));
				} catch (IllegalAccessException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} 
			}
		}
		
		
	}

}

 

这里读取资源文件图片使用了java.lang.reflect反射机制,这是java中较为重要的章节,同学们可以自行查阅

Activity GridView绑定适配器

public class LayoutDemo extends Activity {

	GridView gridview;
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_layout_demo);
		gridview=(GridView)super.findViewById(R.id.gridView);
		gridview.setAdapter(new ImageAdapter(this));
	}

	

}

 

实现效果如下



 

 

 

下一章我们讲ListView动画实现,大家请持续关注哦

  • 大小: 25.5 KB
  • 大小: 38.3 KB
  • 大小: 28.6 KB
0
0
分享到:
评论

相关推荐

    android 自定义控件 GridView

    在本主题中,我们将深入探讨如何创建两个可相互拖拉的自定义GridView控件,实现数据交互。 首先,了解GridView的基本用法。GridView继承自AbsListView,它会将数据集按行和列的形式进行排列。默认情况下,GridView...

    安卓gridview相关相关-自己做的类似GridView的控件可以拖动排序有删除动画.zip

    总之,这个压缩包提供了具有拖动排序和删除动画的自定义GridView实现,对于想要在Android应用中实现此类功能的开发者来说,是一个有价值的参考资料。通过研究和理解这个控件的实现,开发者可以学习到自定义控件、...

    android gridview中item的拖动及动画实现demo

    在这个"android gridview中item的拖动及动画实现demo"中,我们将深入探讨如何在GridView中实现物品的拖动功能以及伴随的动画效果。这个过程涉及到对GridView的重写以及关键动画的实现,下面将详细讲解这两个核心部分...

    android 控件动画

    "android 控件动画"这一主题涵盖了如何在Android应用中为UI控件添加动态效果,使界面更加生动和吸引人。本示例(AndroidDemo_027)主要展示了列表的浮现和图像的浮现、渐隐等效果。下面将详细探讨这些知识点: 1. *...

    安卓Android源码——gridview分页效果.rar

    这个"安卓Android源码——gridview分页效果.rar"文件很可能是包含了一个实现GridView分页效果的示例项目。分页在大数据量展示时尤为重要,因为它提高了用户体验,避免一次性加载大量数据导致应用性能下降或内存溢出...

    android 动画集合和多个控件的使用源码

    同时,对于列表(ListView)和网格(GridView),可以使用动画库,如`androidx.recyclerview.widget.RecyclerView`的Item动画,使得数据项的插入、删除或移动更具动态性。 除了基本的动画,Android还提供了Transition...

    android GridView控件学习

    在Android开发中,GridView是一个非常常用的布局控件,它允许我们以网格的形式展示数据,通常用于创建类似照片墙、应用列表等布局。本教程将深入探讨Android中的GridView控件,帮助开发者更好地理解和运用这一功能。...

    自己做的类似GridView 的控件,可以拖动排序,有删除动画android源码

    总的来说,这个项目提供了一个自定义的Android控件,它增强了GridView的交互性,使其具有更丰富的用户操作体验,是Android UI定制开发的一个实例。对于想要学习Android自定义控件、事件处理和动画效果的开发者来说,...

    Android之GridView视图实现

    在Android开发中,GridView是一种非常常见的布局控件,它允许我们以网格的形式展示数据,通常用于创建类似照片墙、菜单选项或图标排列等界面。在本教程中,我们将深入探讨如何实现一个基本的GridView视图,并通过...

    android gridview分页和滑动效果

    在Android开发中,GridView是一种非常常见的布局控件,它允许我们以网格的形式展示数据,通常用于创建类似相册、应用列表等场景。本教程将详细讲解如何实现GridView的分页和滑动效果。 首先,我们需要了解GridView...

    android漂亮的gridview美化样式

    在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据。这个主题“android漂亮的gridview美化样式”主要关注如何让GridView在视觉上更具吸引力,提高用户体验。通常,我们可以通过自定义...

    ios 自定义表格控件 gridview

    在这种情况下,"ios 自定义表格控件 gridview" 提供了一种解决方案,特别是对于那些希望实现类似网格布局,同时支持首列固定和左右滑动效果的应用。这种自定义表格控件通常被称为GridView,它在iPhone平台上特别有用...

    Android中GridView点击右上角的叉号删除条目,贝塞尔曲线实现进度条

    在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据。这个项目的重点在于两个功能:一是实现在GridView中点击右上角的叉号删除条目,二是利用贝塞尔曲线来创建动态的进度条效果。 ...

    功能强大自定义GridView控件全源码

    这个“功能强大自定义GridView控件全源码”很显然是一个专为Android开发者设计的开源项目,旨在提供一种更加灵活、可定制化的GridView实现,以满足各种复杂的界面需求。 GridView的基本用法是通过继承自Android内置...

    Android ScrollView+GridView左右滑动 自动定位滑动到某一项

    在这个项目中,我们讨论的是如何结合使用ScrollView和GridView实现左右滑动,并在启动时或点击按钮时自动定位到指定项。 首先,让我们深入理解ScrollView。ScrollView是Android中的一个可滚动视图,它可以包裹任何...

    精致的GridView控件源码

    总的来说,“精致的GridView控件源码”可能包含了一些优化过的Adapter实现,改进的滚动效果,自定义的动画,或者对性能进行了优化。通过深入研究这些源码,开发者不仅可以学习到如何提升GridView的使用体验,还能...

    自android 己做的类似GridView 的控件,可以拖动排序,有删除动画

    然而,原生的GridView并不支持拖动排序和自定义动画,所以开发者需要自定义一个继承自GridView的类,重写其中的关键方法以实现这些功能。 1. **拖动排序**:为了实现拖动排序,你需要监听用户的触摸事件,当用户...

    AndroidGridView点击每一个图片进入个人页面渐变特效.zip

    在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据。这个"AndroidGridView点击每一个图片进入个人页面渐变特效.zip"压缩包包含的资源可能是一个示例项目,展示了如何在GridView中实现...

    android左右滑动GridView

    总结起来,实现"android左右滑动GridView"需要自定义控件、处理滑动事件、设置适配器和优化性能等多个环节。通过这些技术,我们可以创建出具有类似手机桌面launcher效果的GridView,提供更丰富的用户体验。在实际...

    android ViewFlipper + Gridview 实现网格视图由上向下自动滑动效果

    在本示例中,"android ViewFlipper + Gridview 实现网格视图由上向下自动滑动效果"的目标是构建一个动态的、自滚动的网格视图,这种效果常见于广告轮播或者产品展示等场景。 ViewFlipper是Android SDK提供的一种...

Global site tag (gtag.js) - Google Analytics