`
xiaoming123123
  • 浏览: 100351 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

Gallery 模仿Flash广告栏

 
阅读更多

转自:http://androiddada.iteye.com/blog/1498261

 

 

 


先上个效果图~

http://androiddada.iteye.com/


思路是这样的,功能方面:

首先这个是个左右循环的Gallery(其实是Integer.MAX_VALUE = 2147483647 这么多的个啦,接近无限了)。

这个网上有很多,不再赘述。代码里面也有,可以直接下载~

然后就是Gallery的样式,我这里 设置成无阴影的,间距 android:spacing="0dip"。

最后就是下面的指示条了,我使用FrameLayout布局,里面的指示点 radiobuttion.(因为只要一个是点亮的,用于指示当前位置,所以在一个group中)


下面是重要代码:


布局:



Xml代码   收藏代码
  1. <span style="font-size: small;"><?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     android:orientation="vertical" >  
  6.   <FrameLayout  
  7.             android:layout_width="fill_parent"  
  8.             android:layout_height="150dip" >  
  9.   
  10.             <com.test.AdvGallery  
  11.                  android:fadingEdge="none"   
  12.                 android:id="@+id/home_advs_gallery"   
  13.                 android:spacing="0dip"  
  14.                 android:layout_width="fill_parent"  
  15.                 android:layout_height="150dip" />  
  16.   
  17.             <LinearLayout  
  18.                 android:layout_width="fill_parent"  
  19.                 android:layout_height="20dip"  
  20.                 android:layout_gravity="bottom"  
  21.                 android:background="#55999999"  
  22.                 android:gravity="center"  
  23.                 android:orientation="horizontal" >  
  24.   
  25.                 <RadioGroup  
  26.                     android:gravity="center"  
  27.                     android:id="@+id/home_advs_gallery_mark"  
  28.                     android:orientation="horizontal"  
  29.                     android:layout_width="fill_parent"  
  30.                     android:layout_height="wrap_content" >  
  31.            
  32.                 </RadioGroup>  
  33.             </LinearLayout>  
  34.         </FrameLayout>  
  35.   
  36. </LinearLayout></span>  

 


自定义Gallery,为了解决Gallery拖拽滑动过快:



Java代码   收藏代码
  1. <span style="font-size: small;">public class AdvGallery extends Gallery {  
  2.     public AdvGallery(Context context) {  
  3.         super(context);  
  4.         // TODO Auto-generated constructor stub  
  5.     }  
  6.       
  7.   
  8.     public AdvGallery(Context context, AttributeSet attrs) {  
  9.         super(context, attrs);  
  10.         // TODO Auto-generated constructor stub  
  11.     }  
  12.   
  13.     @Override  
  14.     public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,  
  15.             float velocityY) {  
  16.             //返回false 解决Gallery拖拽滑动过快  
  17.         return false;  
  18.     }  
  19.   
  20.     @Override  
  21.     public void setUnselectedAlpha(float unselectedAlpha) {  
  22.         // TODO Auto-generated method stub  
  23.         unselectedAlpha = 1.0f;  
  24.         super.setUnselectedAlpha(unselectedAlpha);  
  25.     }  
  26.       
  27.     </span>  



adapter中的 getview方法:



Java代码   收藏代码
  1. <span style="font-size: small;">@Override  
  2.     public View getView(int position, View convertView, ViewGroup parent) {  
  3.         // TODO Auto-generated method stub  
  4.             ImageView imageView = new ImageView(context);    
  5.             String curr_URL = imgURL.get(position%imgURL.size());  
  6.             imageView.setTag(curr_URL);  
  7.              Drawable cachedImage = asyncImageLoader.loadDrawable(context,curr_URL,new ImageCallback1() {  
  8.                     @Override  
  9.                     public void imageLoaded(Drawable imageDrawable, String imageUrl) {  
  10.                         ImageView imageViewByTag = (ImageView) gallery.findViewWithTag(imageUrl);  
  11.                         if (imageViewByTag != null && imageDrawable != null ) {   
  12.                             imageViewByTag.setImageDrawable(imageDrawable);  
  13.                             notifyDataSetChanged();  
  14.                         }  
  15.                     }  
  16.                 });  
  17.              if (cachedImage != null) {  
  18.                   imageView.setImageDrawable(cachedImage);  
  19.             }else{  
  20.                 imageView.setImageResource(R.drawable.ic_launcher);  
  21.             }  
  22.             // 设置边界对齐  
  23.              imageView.setAdjustViewBounds(true);  
  24.              imageView.setLayoutParams(new Gallery.LayoutParams(  
  25.                     LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));  
  26.             //设置比例类型    
  27. //           imageView.setScaleType(ImageView.ScaleType.FIT_XY);  
  28.         return imageView;  
  29.     }</span>  



main中的oncreate:



Java代码   收藏代码
  1. <span style="font-size: small;">  @Override  
  2.     public void onCreate(Bundle savedInstanceState) {  
  3.         super.onCreate(savedInstanceState);  
  4.         setContentView(R.layout.main);  
  5.           
  6.         _radioGroup = (RadioGroup) findViewById(R.id.home_advs_gallery_mark);  
  7.         _adv_Gallery = (Gallery) findViewById(R.id.home_advs_gallery);  
  8.         _advGalleryAdapter = new AdvGalleryAdapter(ADV_GalleryActivity.this,_adv_imgURL,_adv_Gallery);  
  9.           
  10.         _adv_Gallery.setAdapter(_advGalleryAdapter);  
  11.         _adv_Gallery.setSelection(Integer.MAX_VALUE >> 1);  
  12.         _adv_Gallery.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {  
  13.             @Override  
  14.             public void onItemSelected(AdapterView<?> arg0, View arg1,  
  15.                     int arg2, long arg3) {  
  16.                 // TODO Auto-generated method stub  
  17.                 _radioGroup.check(arg2%_adv_imgURL.size()); //Gallery焦点图片改变时 更改RadioGroup  
  18.             }  
  19.   
  20.             @Override  
  21.             public void onNothingSelected(AdapterView<?> arg0) {  
  22.                 // TODO Auto-generated method stub  
  23.             }  
  24.   
  25.         });   
  26.         //图片地址  
  27.         _adv_imgURL.add("http://www.baidu.com/img/baidu_sylogo1.gif");  
  28.         _adv_imgURL.add("http://www.iteye.com/images/logo.gif?1308833136");  
  29.         _adv_imgURL.add("http://csdnimg.cn/www/images/csdnindex_logo.gif");  
  30.           
  31.         for(int i=0;i<_adv_imgURL.size();i++){  
  32.             RadioButton rb = new RadioButton(ADV_GalleryActivity.this);  
  33.             rb.setId(i);  
  34.             rb.setButtonDrawable(R.drawable.adv_gallery_mark_selector);  
  35.             rb.setClickable(false);  
  36.             _radioGroup.addView(rb);  
  37.         }  
  38.           
  39.     }</span>  


http://androiddada.iteye.com/

由于代码比较多,放上源码,希望大家能用到~!

 

 

分享到:
评论

相关推荐

    模仿flash广告

    在这个背景下,"模仿Flash广告的效果用gallery实现"意味着我们将探讨如何使用HTML5的Gallery组件来重现类似Flash广告的动态展示。 首先,让我们理解什么是Gallery。Gallery通常指的是一个图片或内容展示的滑动视图...

    3D Interactive Gallery XML Flash(3D图片展示)

    "3D Interactive Gallery XML Flash"是一个基于Adobe Flash技术的3D图片展示解决方案,它利用ActionScript 3.0(AS3)的强大功能,实现了在网页上展示三维图像和信息的新颖方式。 Flash 3D技术是Adobe Flash Player...

    gallery实现类似于广告栏的效果

    在本教程中,我们将深入探讨如何利用`Gallery`实现广告栏效果。 首先,我们来了解`Gallery`的基本使用方法。`Gallery`是Android SDK中的一个`ViewGroup`,继承自`AbsSpinner`。在布局文件中,你可以这样声明一个`...

    Wondershare Flash Gallery Factory

    **Wondershare Flash Gallery Factory** 是一款专业且用户友好的软件工具,专为创建吸引人的交互式Flash动画相册而设计。它集成了多种模板、特效和编辑功能,使得即便没有编程经验的用户也能轻松制作出高质量的Flash...

    Aneesoft 3D Flash Gallery 2.4.0.

    《Aneesoft 3D Flash Gallery 2.4.0:轻松创建专业级Flash相册》 在数字化时代,我们拥有了大量的照片,如何展示这些照片成为了一个问题。Aneesoft 3D Flash Gallery 2.4.0,一款专为用户设计的便捷工具,使创建令...

    Flash Gallery Factory Deluxe(Flash幻灯相册制作) V5.1(无需注册码)

    Wondershare 出品的 Flash Gallery Factory 是一个易于使用、但极具创意的Flash相册制作工具,可以把图片变换成绚丽多彩的Flash幻灯片和Flash相册,并带有动画模板、过渡效果、装饰及背景音乐等,只需少量操作,就能...

    flash_gallery_flash源码_

    【标题】:“flash_gallery_flash源码_” 指向的是一个基于Flash技术的图库展示应用,可能是用于创建互动式、视觉效果丰富的照片或图片画廊。在Web开发领域,Flash曾是制作动态和交互内容的流行工具,特别是在创建...

    Flash Gallery Factory_v5.2.0汉化绿色版_下半部

    《Flash Gallery Factory_v5.2.0汉化绿色版_下半部》是针对数字图像展示设计的一款实用软件,主要用于创建动态且吸引人的Flash相册和幻灯片。本软件已经汉化为中文版本,便于中国用户操作使用,同时提供绿色版,无需...

    3D Interactive Gallery XML Flash(3D图片展示--很酷的效果).

    在IT领域,3D Interactive Gallery XML Flash是一种利用Adobe Flash技术创建的交互式3D图片展示解决方案。这个技术允许用户以独特、动态的方式展示图像,提供了一种吸引人的用户体验,尤其适用于艺术画廊、产品展示...

    XML+Flash+Gallery作品展示

    XML+Flash+Gallery作品展示是一种基于ActionScript 3(AS3)编程语言和XML数据格式的动态图库展示方案。这种技术在过去的Web设计中非常流行,因为它允许设计师创建交互式且可自定义的多媒体画廊,同时保持内容的分离...

    3DWondershare_Flash_Gallery动画相册

    3DWondershare_Flash_Gallery动画相册完美破解版(互相学习)

    Flash Gallery Factory5.2.0单文件汉化注册版

    专业的Flash相册制作工具,可以帮助你制作出活泼生动的 Flash 幻灯,可以在几分钟内把你的照片、音乐制作成漂亮的 Flash 幻灯。软件内置多种转换效果和主题模板,支持导入 MP3,WAV 和 WMA 格式的音频文件,支持导出...

    flash gallery factory4827绿色特别版

    解压缩后首先运行RegisterUser.exe,再运行@绿化工具.exe,最后运行FGF.exe 很方便实用的flash相册制作工具,用的很好。

    ultimate flash gallery_v2

    "Ultimate Flash Gallery_v2" 是一款经典的Flash动画相册制作工具,专为网页设计师和内容创作者设计,用于创建互动式、动态的图像展示。这款软件允许用户将图片、视频等多媒体内容整合到一个优雅的Flash画廊中,提供...

    xml_flash广告效果

    在“xml_flash广告效果”中,核心在于如何利用XML的结构化数据特性和Flash的动画展示能力。XML(Extensible Markup Language)是一种轻量级的标记语言,用于存储和传输数据。它的优点在于结构清晰、易于解析,并且...

    ViewPagerGallery:用Viewpager 模仿Gallery

    在描述中提到的"用Viewpager 模仿Gallery",意味着开发者将创建一个定制的`ViewPager`实现,以便用户可以像在`Gallery`中那样快速左右滑动,同时保持`ViewPager`的特性,如自动滚动、手势识别和页面间平滑过渡。...

    javascript经典特效---jquery仿flash图片放大相册的插件代码(Zoomer Gallery)下载.rar

    这个插件模仿了Flash技术的图片展示效果,但避免了Flash的一些限制,如浏览器兼容性问题和移动设备支持不足。Flash曾是创建动态内容的流行工具,但在HTML5和JavaScript的崛起后,逐渐被替代。 Zoomer Gallery插件...

    破解 动感3D相册制作工具 3D Flash Gallery

    3D Flash Gallery提供一种非常简单的方式让你建立自己的3D相册。通过3D Flash Gallery提供的模板你可以做出很多很炫的3D相册。最重要的是用户不需要复杂的操作,对于那些怕麻烦的同学来说自然是福音。步骤1:添加到...

    Flash XML Gallery相册[图集]效果.rar

    《Flash XML Gallery相册:构建动态图集效果详解》 Flash XML Gallery相册是一种流行的网页图集展示方式,它利用XML文件作为数据源,结合ActionScript编程语言,为用户提供了一个可自定义、交互性强的图片展示平台...

Global site tag (gtag.js) - Google Analytics