Android图片滚动,加入自动播放功能,使用自定义属性实现,霸气十足!

大家好,记得上次我带着大家一起实现了一个类似与淘宝客户端中带有的图片滚动播放器的效果,但是在 做完了之后,发现忘了加入图片自动播放的功能(或许是我有意忘记加的.....),结果图片只能通过手指滑动 来播放。于是今天我将再次带领大家,添加上之前遗漏的功能,让我们的图片播放器更加完善。

这次 的程序开发将完全基于上一次的代码,如果有朋友还未看过上篇文章,请先阅读 Android实现图片滚动控件 ,含页签功能,让你的应用像淘宝一样炫起来 。

既然是要加入自动播放的功能,那么就有一个非常 重要的问题需要考虑。如果当前已经滚动到了最后一张图片,应该怎么办?由于我们目前的实现方案是,所 有的图片都按照布局文件里面定义的顺序横向排列,然后通过偏移第一个图片的leftMargin,来决定显示哪 一张图片。因此当图片滚动在最后一张时,我们可以让程序迅速地回滚到第一张图片,然后从头开始滚动。 这种效果和淘宝客户端是有一定差异的(淘宝并没有回滚机制,而是很自然地由最后一张图片滚动到第一张图 片),我也研究过淘宝图片滚动器的实现方法,并不难实现。但是由于我们是基于上次的代码进行开发的,方 案上无法实现和淘宝客户端一样的效果,因此这里也就不追求和它完全一致了,各有风格也挺好的。

好了,现在开始实现功能,首先是打开SlidingSwitcherView,在里面加入一个新的AsyncTask,专门用于回 滚到第一张图片:

class ScrollToFirstItemTask extends AsyncTask<Integer, Integer, 

Integer> {  

    @Override
    protected Integer doInBackground(Integer... speed) {
        int leftMargin = firstItemParams.leftMargin;
        while (true) {
            leftMargin = leftMargin + speed[0];
            // 当leftMargin大于0时,说明已经滚动到了第一个元素,跳出循环
            if (leftMargin > 0) {
                leftMargin = 0;
                break;
            }
            publishProgress(leftMargin);
            sleep(20);
        }
        return leftMargin;
    }  

    @Override
    protected void onProgressUpdate(Integer... leftMargin) {
        firstItemParams.leftMargin = leftMargin[0];
        firstItem.setLayoutParams(firstItemParams);
    }  

    @Override
    protected void onPostExecute(Integer leftMargin) {
        firstItemParams.leftMargin = leftMargin;
        firstItem.setLayoutParams(firstItemParams);
    }  

}

然后在SlidingSwitcherView里面加入一个新的方法:

/**
 * 滚动到第一个元素。
 */
public void scrollToFirstItem() {
    new ScrollToFirstItemTask().execute(20 * itemsCount);
}

这个方法非常简单,就是启动了我们新增的ScrollToFirstItemTask,滚动速度设定为20 * itemsCount,这样当我们需要滚动的图片数量越多,回滚速度就会越快。定义好这个方法后,只要在任意地 方调用scrollToFirstItem这个方法,就可以立刻从当前图片回滚到第一张图片了。

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/extra/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索淘宝
, 图片
, 方法
, doinbackground
, 滚动
, 功能
, 滚动图片
, 一个
, 图片滚动
, Android滚动文字
, 图片自动播放
, Android滚动选择器
, Android滚动选择
Android循环滚动
致兄弟的话霸气十足、口号大全霸气十足、班级口号大全霸气十足、艺名大全男生霸气十足、2字网名大全霸气十足,以便于您获取更多的相关知识。

时间: 2024-08-02 05:13:56

Android图片滚动,加入自动播放功能,使用自定义属性实现,霸气十足!的相关文章

Android编程实现动画自动播放功能

本文实例讲述了Android编程实现动画自动播放功能.分享给大家供大家参考,具体如下: private ImageView image; private AnimationDrawable animDrawable = new AnimationDrawable(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.la

Android仿淘宝商品浏览界面图片滚动效果_Android

用手机淘宝浏览商品详情时,商品图片是放在后面的,在第一个ScrollView滚动到最底下时会有提示,继续拖动才能浏览图片.仿照这个效果写一个出来并不难,只要定义一个Layout管理两个ScrollView就行了,当第一个ScrollView滑到底部时,再次向上滑动进入第二个ScrollView.效果如下: 需要注意的地方是:       1.如果是手动滑到底部需要再次按下才能继续往下滑,自动滚动到底部则不需要       2.在由上一个ScrollView滑动到下一个ScrollView的过程中

Android实现图片滚动控件,含页签功能,让你的应用像淘宝一样炫起来

首先题外话,今天早上起床的时候,手滑一下把我的手机甩了出去,结果陪伴我两年半的摩托罗拉里程碑 一代就这么安息了,于是我今天决定怒更一记,纪念我死去的爱机. 如果你是网购达人,你的手机上 一定少不了淘宝客户端.关注特效的人一定都会发现,淘宝不管是网站还是手机客户端,主页上都会有一个 图片滚动播放器,上面展示一些它推荐的商品.这个几乎可以用淘宝来冠名的功能,看起来还是挺炫的,我 们今天就来实现一下. 实现原理其实还是之前那篇文章Android滑动菜单特效实现,仿人人客户端侧 滑效果,史上最简单的侧滑

Android ListView滚动到底后自动加载数据_Android

熟悉Android的朋友们都知道,不管是微博客户端还是新闻客户端,都离不开列表组件,可以说列表组件是Android数据展现方面最重要的组件,我们 今天就要讲一讲列表组件ListView加载数据的相关内容.通常来说,一个应用在展现大量数据时,不会将全部的可用数据都呈现给用户,因为这不管对于服 务端还是客户端来说都是不小的压力,因此,很多应用都是采用分批次加载的形式来获取用户所需的数据.比如:微博客户端可能会在用户滑动至列表底端时自动加 载下一页数据,也可能在底部放置一个"加载更多"按钮,

Android 图片自动对比统计

问题描述 Android 图片自动对比统计 小弟要做一个Android图片编辑功能的软件,其中需求是自动对比两张图片,找出两张图片不相同的地方并自动统计不同的数目,请问应该怎样实现?? 解决方案 你看看我的问题 虽然我不能帮你解决 但希望没准你可以帮我解决 谢谢

360浏览器不兼容-关于图片滚动在不同浏览器中部兼容的问题

问题描述 关于图片滚动在不同浏览器中部兼容的问题 这是用dw做的框架 实际代码 var nums = [], timer, n = $$("idSlider2").getElementsByTagName("li").length, st = new SlideTrans("idContainer2", "idSlider2", n, { onStart: function(){//设置按钮样式 forEach(nums, f

fackbook的Fresco (FaceBook推出的Android图片加载库-Fresco)

[Android开发经验]FaceBook推出的Android图片加载库-Fresco   欢迎关注ndroid-tech-frontier开源项目,定期翻译国外Android优质的技术.开源库.软件架构设计.测试等文章 原文链接:Introducing Fresco: A new image library for Android 译者 : ZhaoKaiQiang 校对者: Chaossss 校对者: bboyfeiyu 校对者: BillionWang  校对者: dujinyang 校对

Android自定义滚动选择器实例代码

Android自定义滚动选择器 实现图片的效果 代码如下 package com.linzihui.widget; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Paint.Align; import android.graph

jQuery bxCarousel实现图片滚动切换

 BxCarousel是一个具有众多配置且易用的Jquery图片滚动插件,特征主要有: ◆ 可以指定显示的元素总数 ◆ 可以指定每次滚动的元素个数 ◆ 自动播放模式 ◆ 前一张/后一张按钮控制图片流动 参数含义: display_num:显示元素的数量,几张图片 move:单击左右控制键时,移动的元素个数,此处为移动2张图片 prev_image:上一元素按钮图片 next_image:下一元素按钮图片 margin:图片之间的间隙,一般设为10px auto:自动滚动效果 controls:是