最近在项目中用到图片轮播,试了Gallery,ViewFlipper,ViewPager,感觉Gallery最符合需求,但是Gallery的系统边框很难看,项目中要求用自己的背景图片。

下面来看一下使用Gallery实现图片轮播

运行效果:

布局文件:

[java] view
plain
copy

 
  1. <FrameLayout
  2. >
  3. />
  4. >
  5. />
  6. />
  7. />
  8. </FrameLayout>

其中, android:fadingEdge="none"消除图片两边的阴影。使用FrameLayout在底部显示小圆点

[java] view
plain
copy

 
  1. publicclassextends

    private
    privateint;

  2. private
  3. privatestaticfinalint;
  4. publicvoid
    super

    ].setImageDrawable(getBaseContext().getResources()

  5. newthis

    new
    , );

  6. privatevoid

    new

    privatenew

  7. publicvoid
    new
    ;
  8. * 开一个线程执行耗时操作
  9. */
    privatenew
  10. publicvoid
    super
    switch
    case:
  11. break
    default
    break

    * 设置小圆点显示,position会一直增加,如果要循环显示图片,需要对position取余,否则数组越界

  12. */
    privatenew
  13. publicvoid
    intlong
    int

    if) {

  14. ].setImageDrawable(getBaseContext()
  15. if)) {
  16. ].setImageDrawable(getBaseContext()
  17. if) {
  18. ]
  19. publicvoid
  20. * 点击事件,点击图片进入SecondActivity
  21. */
    privatenew
  22. publicvoidint
    long
    new
    thisclass

    }

ImageAdapter类,重写android.widget.BaseAdapter,用于描述图像信息。

[java] view
plain
copy

 
  1. publicclassextends
    private
    privateint

    privatestaticfinalint;

  2. public
    this
  3. publicint
    return
  4. publicint
    return
  5. publiclongint
    return
  6. publicint
    new

    new

    new
    , , , );

  7. return

    }

如果用系统背景,可以这样写

[java] view
plain
copy

 
  1. int
    private

    public

    // 获得Gallery组件的属性

    );

  2. }

在getview中设置

[java] view
plain
copy

 
  1. imageView.setBackgroundResource(mGalleryItemBackground);

Gallery组件属性信息定义在res\values\attrs.xml

[java] view
plain
copy

 
  1. <?xml version= encoding=?>
  2. >
  3. />
  4. </resources>

android gallery 自定义边框+幻灯片的更多相关文章

  1. android gallery 自定义边框+幻灯片效果

    最近在项目中用到图片轮播,试了Gallery,ViewFlipper,ViewPager,感觉Gallery最符合需求,但是Gallery的系统边框很难看,项目中要求用自己的背景图片. 下面来看一下使 ...

  2. Android之EditText自定义边框和边框颜色(转载)

    介绍一种比较常见的用法 第一步:准备两张图片大小一样,颜色不同的图片.图片名称分为:editbox_focus.png和editbox_normal.png 放入工程的drawable文件夹下. 第二 ...

  3. Android RatingBar 自定义样式

    Android RatingBar 自定义样式 1.先定义Style: <style name="RadingStyle" parent="@android:sty ...

  4. Android实现自定义带文字和图片的Button

    Android实现自定义带文字和图片的Button 在Android开发中经常会需要用到带文字和图片的button,下面来讲解一下常用的实现办法. 一.用系统自带的Button实现 最简单的一种办法就 ...

  5. Android Studio 自定义debug签名文件keystore

    Android Studio 自定义debug签名文件keystore

  6. Android读取自定义View属性

    Android读取自定义View属性 attrs.xml : <?xml version="1.0" encoding="utf-8"?> < ...

  7. Android之自定义画图文字动画

    结构: BaseView: package com.caiduping.canvas; import android.content.Context; import android.graphics. ...

  8. Android 三档自定义滑动开关,禁止点击功能的实现,用默认的seekbar组件实现

    android三档自定义滑动开关,禁止点击功能的实现,普通开关网上有很多例子,三档滑动开关的则找了整天都没有相关例子,开始用普通开关的源码修改了自己实现了一个类,但效果不如人意,各种边界情况的算法很难 ...

  9. Android 自定义View修炼-【2014年最后的分享啦】Android实现自定义刮刮卡效果View

    一.简介: 今天是2014年最后一天啦,首先在这里,我祝福大家在新的2015年都一个个的新健康,新收入,新顺利,新如意!!! 上一偏,我介绍了用Xfermode实现自定义圆角和椭圆图片view的博文& ...

随机推荐

  1. [algorithm]求最长公共子序列问题

    最直白方法:时间复杂度是O(n3), 空间复杂度是常数 reference:http://blog.csdn.net/monkeyandy/article/details/7957263 /** ** ...

  2. NuGet使用简要说明

    引言 什么是NuGet?Nuget是 ASP .NET Gallery 的一员.NuGet 是免费.开源的包管理开发工具,专注于在 .NET 应用开发过程中,简单地合并第三方的组件库.当需要分享开发的 ...

  3. 解决Navicat Error: Missing required libmysql_d.dll

    在Navicat(H:\Program Files (x86)\Navicat for MySQL)目录下找到libmysql_d.dll,复制到C盘:system/wow64文件夹下. 重新打开na ...

  4. spoj 147

    dfs枚举真值 #include <cstdio> #include <cstring> #include <cstdlib> #include <stack ...

  5. 【设计模式六大原则6】开闭原则(Open Close Principle)

      定义:一个软件实体如类.模块和函数应该对扩展开放,对修改关闭. 问题由来:在软件的生命周期内,因为变化.升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不 ...

  6. A Step-by-Step Guide to Your First AngularJS App

    What is AngularJS? AngularJS is a JavaScript MVC framework developed by Google that lets you build w ...

  7. ubuntu下安装spark1.4.0

    构建在hadoop2.6.0之上的 1.在官网下载spark-1.4.0-bin-hadoop2.6.tgz 2.解压到你想要放的文件夹里,tar zxvf spark-1.4.0-bin-hadoo ...

  8. ubuntu下hadoop2.6在eclipse上的配置

    1.复制hadoop-eclipse-plugin-2.6.0.jar插件到eclipse的plugins目录下(hadoop2.6的插件,在hadoop自带上没有,要上网下载,多试几个 如果是从ub ...

  9. C# 使用TimeSpan计算两个时间差

    转载:http://www.cnblogs.com/wifi/articles/2439916.html 可以加两个日期之间任何一个时间单位. private string DateDiff(Date ...

  10. C++ Variables and Basic Types Notes

    1. Type conversion: If we assign an out-of-range value to an object of unsigned type, the result is ...