• Android实现宫格图片连续滑动效果


      本文给大家介绍如何在Android中实现宫格图片连续滑动效果。

     

      在这之前,写过几篇关于在Android中实现滑动的效果,毕竟滑动效果在Andriod开发中也使用得比较频繁,有兴趣的朋友请查看我以前的文章,这里不再详述。

      今天写这篇文章的缘由是前一段时间一个网友在我的博客上面留言,想要实现在GridLayout(相当于九宫格)中点击每项可左右滑动显示该宫格的图片,当该宫格的图片显示完以后,接着显示下一宫格的图片。那么看过我以前关于滑动方面的文章的朋友,相信要实现前者的效果并不难,关键在于如何实现后者,即如何在一个宫格的图片显示完以后,接着显示下一宫格的图片。那么这就是我们今天这篇文章要探讨的内容。

      

      说到这里呢,首先对这位网友说声抱歉,由于前些日子太忙,直到现在有那么一点时间来写这篇文章,毕竟平常工作也比较忙,不能即时回答大家的问题,还请谅解。

      好了,言归正传,继续来介绍我们的内容。在这篇文章里,我们实现的示例带有什么样的功能呢?为了大家能更多的学习Android方面的知识,我的这个示例除了实现上面讨论的功能以外,还实现了如下的功能:

    1. 图片多线程加载;
    2. 图片可自动浏览;
    3. 可隐藏头部和底部;
    4. 图片加载时可显示翻牌效果;
    5. 宫格切换时实现3D切换效果;
    6. 宫格图片可切换成ListView样式;
    7. 可配置各种选项,比如缓存大小、线程池大小、图片显示等。

      为了大家能更好的理解,我们先来看下要实现的效果图:

        

      大家看了效果图之后就会有一种似曾相识的感觉。这就对了,因为这种效果在新闻客户端中比较常见,当然也可以用于其他的应用当中。

      下面就让我们开始实现过程。

      先熟悉下MainActivity.java的代码,如下:

    package com.palace.image.activity;
    
    import com.image.loader.core.DisplayImageOptions;
    import com.palace.image.R;
    import com.palace.image.adapter.GridViewAdapter;
    
    import android.content.Intent;
    import android.graphics.Color;
    import android.graphics.drawable.ColorDrawable;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.GridView;
    import android.widget.AdapterView.OnItemClickListener;
    
    /**
     * Android实现宫格图片连续滑动效果
     * @Description: Android实现宫格图片连续滑动效果
    
     * @File: MainActivity.java
    
     * @Package com.palace.image.activity
    
     * @Author Hanyonglu
    
     * @Date 2012-09-19 下午05:57:34
    
     * @Version V1.0
     */
    public class MainActivity extends BaseActivity {
        private GridView gridView = null;
        private String[] imageValues = null;
        private String[] titleValues = null;
        private DisplayImageOptions options;
        
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main_activity);
            
            // 初始化
            initViews();
        }
        
        /**
         * 初始化
         */
        private void initViews(){
            titleValues = getResources().getStringArray(R.array.news_title);
            imageValues = getResources().getStringArray(R.array.small_images);
            options = new DisplayImageOptions.Builder()
                .showStubImage(R.drawable.ic_image_load)
                .showImageForEmptyUri(R.drawable.ic_image_load)
                .cacheInMemory()
                .cacheOnDisc()
                .build();
            
            gridView = (GridView) findViewById(R.id.gridview);
            gridView.setSelector(new ColorDrawable(Color.TRANSPARENT));
            gridView.setAdapter(new GridViewAdapter(
                    this, imageValues,titleValues,imageLoader,options));
            gridView.setOnItemClickListener(itemOnClickListener);
        }
        
        // GridView单击项事件监听器
        private OnItemClickListener itemOnClickListener = new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View v,
                    int position, long id) {
                Intent intent = new Intent();
                intent.setClass(MainActivity.this, ImageActivity.class);
                intent.putExtra("item_index", position);
                startActivity(intent);
            }
        };
        
        @Override
        protected void onStop() {
            super.onStop();
            imageLoader.stop();
        }
        
        @Override
        protected void onDestroy() {
            // TODO Auto-generated method stub
            super.onDestroy();
            imageLoader.stop();
        }
    }

      最后,希望转载的朋友能够尊重作者的劳动成果,加上转载地址:http://www.cnblogs.com/hanyonglu/archive/2012/09/19/2693465.html 谢谢。

     

      未完待续。^_^

     

  • 相关阅读:
    数据结构之队列
    设计模式之策略模式的使用
    搭建一个高可用的redis环境
    Linux遗忘命令
    重温几种排序算法之希尔排序、归并排序、快速排序
    HashMap的简单实现
    Java GC基础
    2016年年终总结
    Shell 备忘录
    Openstack Grizzily 单节点测试机安装( All In One CentOS/RHEL)
  • 原文地址:https://www.cnblogs.com/hanyonglu/p/2693465.html
Copyright © 2020-2023  润新知