当前位置:文档之家› Android animation 动画背景图自动播放的实现

Android animation 动画背景图自动播放的实现

Android animation 动画背景图自动播放的实现
Android animation 动画背景图自动播放的实现

Android animation 动画背景图自动播放的实现

Android动画背景图自动播放的实现

我们在开发android应用的时候,经常会遇到类似从网络加载大图,在加载的过程中,在图片要显示的ImageView位置,先显示一个转圈的loading动画图,给用户的体验会更好一些,要实现这个动画图很简单,使用在/res/anim中定义xml的方式,通常使用…. 来实现。例如:

xmlns:android="https://www.doczj.com/doc/4011916739.html,/apk/res/android">

不过大多数朋友都会遇到的问题是,动画是做好了,但是界面在加载的时候,动画并不会自动播放,还得通过屏幕点击等事件来触发,这就失去了意义了,实际上,android的动画AnimationDrawable 组件里面有个start()方法用于启动动画播放,但是这个方法不能直接写在onClick,onStart,onResume里面,写进去也是无效的,无法启动动画,只能写在比如事件监听当中,于是我们可以使用点小技巧来实现自动播放

目前我知道的有三种方法:

ImageView imageView = (ImageView)findViewById(R.id.xxx);

方法一:使用Runnalbe()来加载

imageView.setBackgroundResource(R.anim.xxxxx);

final AnimationDrawable animationDrawable = (AnimationDrawable)imageView.getBackgroun d();

imageView.post(new Runnable(){

@Override

public void run(){

animationDrawable.start();

}

});

注意:此处一定要用getBackground();不能用getdrawable()方法,会没效果。原因如下:由于我们使用的是imageView的setBackgroundResource方法设置的资源背景,相当于布局文件中的android:background属性,这个属性是view类的属性,必须通过getBackground()方法来获取;而getdrawable()是imageview类的方法,必须通过在代码中setImageResource(int)(对应布局文件的android:src)或

setImageDrawable(Drawable drawable)方法设置才可以使用getdrawable()方法。(详情参考帖子:https://www.doczj.com/doc/4011916739.html,/forum. ... 1&extra=#pid1627412)

方法二:使用AsyncTask异步加载启动

imageView.setBackgroundResource(R.anim.xxxxx);

AnimationDrawable animationDrawable = (AnimationDrawable)imageView.getBackground(); RunAnim runAnim=new RunAnim();

runAnim.execute("");

class RunAnim extends AsyncTask {

@Override

protected String doInBackground(String... params){

if(!animationDrawable.isRunning()){

animationDrawable.stop();

animationDrawable.start();

}

return"";

}

}

方法三:通过添加addOnPreDrawListener来自动加载(我是用这个,感觉很好用)imageView.setBackgroundResource(R.anim.xxxxx);

AnimationDrawable animationDrawable = (AnimationDrawable)imageView.getBackground();

//注意这里,如果你的图片控件用的是setImageResource ,你这里应该使用getDrawable(); imageView.getViewTreeObserver().addOnPreDrawListener(preDrawListener);

OnPreDrawListener preDrawListener = new OnPreDrawListener(){

@Override

public boolean onPreDraw(){

animationDrawable.start();

return true; //必须要有这个true返回

}

};

以上三种方法经过测试没有问题,另外网上有一些说使用重写Activity的onWindowFocusChanged()方法来实现,但是还是有不足,得改变焦点才能触发,虽然理论可以

自动实现改变焦点,感觉还是不甚可取。(https://www.doczj.com/doc/4011916739.html,/blog/1345.html)

android毕业设计(论文)开题报告

毕业设计(论文) 开题报告 题目___________________________ 学院___________________________ 专业及班级___________________________ 姓名___________________________ 学号___________________________ 指导教师 ___________________________ 日期 ___________________________

西安科技大学毕业设计(论文)开题报告

二、主要研究(设计)内容、研究(设计)思路及工作方法或工作流程 设计内容:基于Android平台下实现理货员的功能:精耕拜访,销售机会,拜访效果,门店销量查询,待办事项,数据维护:队列信息,基础信息,地图下载。 设计思路及工作方法: 1.精耕拜访: (1)初始进入该页面,系统会自动获取该理货员的本日拜访的门店及路线。 (2)下方地图会自动定位目前理货员的位置。 (3)点击门店的具体门店名称,在右边会显示该门店的联系人,电话,及地址,并且地图 会自动切换定位以该门店为中心。 (4)点击地图上的+可实现地图局部放大。-可实现地图的放小。 (5)如已拜访的门店,点击进入可以调去历史拜访数据。如未拜访的门店,点击进入可以新增该拜访记录。 (6)如理货员在拜访期间,发现门店已经有卖而目前系统中无记录的情况,则可以通过扫 描SKU的条形码,系统会自动匹配该SKU的信息给理货员。 匹配顺序:连锁总店—区域管理—基本SKU信息 补充说明: (1)公司动态内容,为了显示保乐力加集团的整体形象,有必要对公司的动态进行展示。 要包括集团的光辉历程,门店信息,集团的促销信息等。 (2)在陈列信息栏中,有其它途径过来的回应确认,可以一栏展示在上半部。如该理货员 需要发起确认,也可以通过点击发起确认进行提出。发起确认的需要销售员进行审核并且 分发。 (3)陈列报告,为显示每次理货员必须处理的门店信息记录及图片等。 (4)在陈列信息栏中,有其它途径过来的回应确认,可以一栏展示在上半部。如该理货员需要发起确认,也可以通过点击发起确认进行提出。发起确认的需要销售员进行审核并且分发。 (5)价格显示,系统会自动带出竞品信息。罗列在下半部。理货员在进行拜访期间,可以对本身的SKU及竞品的价格进行登记。主要登记内容:零售价格,促销价格及促销期间。信息采集完毕,可以供后台进行统计分析。 (7)在陈列信息栏中,有其它途径过来的回应确认,可以一栏展示在上半部。如该理货员需要发起确认,也可以通过点击发起确认进行提出。发起确认的需要销售员进行审核并且分发。 (7)库存信息,主要记录SKU的库存数量。 (8)上半部为助销申请内容,主要是对一些礼品的申请。 (9)订单处理,为新增订单,退货内容及换货内容的跟踪。 2.销售机会: (1)打开销售机会界面,会自动定位目前的门店列表。 (2)用户可以输入门店名称查询具体的门店信息及地图位置。

Android图片处理工具类(圆角,压缩)

Android图片处理工具类(圆角,压缩) 工作中用到的图片处理工具类,简单写下来,以便备用! public class BitmapUtils { /** * 图像背景圆角处理 * bitmap要处理的图片 roundPx 图片弯角的圆度一般是5到10之间 */ public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, float roundPx) { // 创建与原图大小一样的bitmap文件,Config.ARGB_8888根据情况可以改用其它的 Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888); // 实例画布,绘制的bitmap将保存至output中 Canvas canvas = new Canvas(output); final int color = 0xff424242;//写自己需要的颜色值 final Paint paint = new Paint(); final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); final RectF rectF = new RectF(rect); paint.setAntiAlias(true);

canvas.drawARGB(0, 0, 0, 0); paint.setColor(color); canvas.drawRoundRect(rectF, roundPx, roundPx, paint); paint.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.SRC_IN)); canvas.drawBitmap(bitmap, rect, rect, paint); bitmap.recycle(); bitmap = null; return output; } /** * bitmap缩放 * width要缩放的宽度 height要缩放的高度 */ public static Bitmap getBitmapDeflation(Bitmap bitmap, int width, int height, boolean recycle) { if (null == bitmap) { return null;

android中selector背景选择器(全部属性)

浅谈android的selector背景选择器 ---------------------------------------------------- Item顺序是有讲究的,条件限定越细致,则应该放到前面。比如这儿如果把1,2行和3,4行的item交换,那么pressed的就永远无法触发了,因为有item已经满足条件返回了。可以理解为代码中的if语句。 ---------------------------------------------------- 关于listview和button都要改变android原来控件的背景,在网上查找了一些资料不是很全,所以现在总结一下android的selector的用法。 首先android的selector是在drawable/xxx.xml中配置的。 先看一下listview中的状态: 把下面的XML文件保存成你自己命名的.xml文件(比如list_item_bg.xml),在系统使用时根据ListView中的列表项的状态来使用相应的背景图片。 drawable/list_item_bg.xml

android消除Preference黑色背景

话不多说,直接切入正题 一、Android中消除preference拖拉时黑色背景方法: 首先建立一个preference_list.xml 代码如下: 注释:android:divider="@drawable/divider" android:cacheColorHint="#00000000" 重点是这两句话:第一句是设置preferece之间的分割线; 第二句就是消除preference拖拽时产生的黑色背景啦!(“#00000000”就是将其设为透明,你也可以把它设为其他颜色) 二、代码中调用方法: 随便写个PreActivity.java import android.content.Context; import android.preference.PreferenceActivity; import android.preference.PreferenceScreen; public class PreActivity extends PreferenceActivity { @Override

Android 标题栏添加控件及Button控件背景颜色的设置

Android 标题栏添加控件及Button控件背景颜色的设置 一、Android中标题栏添加按 现在很多的Android程序都在标题栏上都显示了一些按钮和标题,如下图: 下面通过实例来看一下如何实现。 1、在layout下创建一个titlebtn.xml文件,内容如下:

安卓图片批量处理软件 (12页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除! == 本文为word格式,下载后可方便编辑和修改! == 安卓图片批量处理软件 篇一:Android_解决图片大量下载:软引用 Android 解决图片大量下载:软引用 1.对象的强、软、弱和虚引用 为了能更加灵活控制对象的生命周期,需要知道对象引用的4中级别,由高到低依次为:强引用、软引用、弱引用和虚引用 备注:这四种的区别: ⑴强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。 ⑵软引用(SoftReference) 如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存(下文给出示例)。软引用可以和一个引用队列(ReferenceQueue)联合使用,如果软引用所引用的对象被垃圾回收器回收,Java虚拟机就会把这个软引用加入到与之关联的引用队列中。 ⑶弱引用(WeakReference) 弱引用与软引用的区别在于:只具有弱引用的对象拥有更短暂的生命周期。在垃圾回收器线程扫描它所管辖的内存区域的过程中,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。不过,由于垃圾回收器是一个优先级很低的线程,因此不一定会很快发现那些只具有弱引用的对象。弱引用可以和一个引用队列(ReferenceQueue)联合使用,如果弱引用所引用的对象被垃圾回收,Java虚拟机就会把这个弱引用加入到与之关联的引用队列中。

Android 中的ListView选中项的背景颜色怎么设置

Android 中的ListView选中项的背景颜色怎么设置? android中ListView获得焦点的项默认是黄色的(模拟器上)现在因为需求想要自己定义被选中项的背景能实现吗? 最佳答案 完全可以实现,这用到了Android的Selector(根据组件的状态显示该状态对应的图片,并以此图片作为背景显示)。把下面的XML文件保存成你自己命名的.xml文件(比如list_bg.xml),注意,这个文件相当于一个背景图片选择器,在系统使用时根据 ListView中的列表项的状态来使用相应的背景图片,什么情况使用什么图片我在下面都进行了说明。还有,你可以把它看成是一个图片来使用,放于 drawable目录下,配置背景属性 android:background="@drawable/list_bg"就能达到你需要的目的了。 --------------------------------------------------------------------------------------------------------------- 在values下新建一个color.xml #808080FF #FFFFFFFF #00ffffff

Android 图片加载性能优化总结

Android 图片加载性能优化总结 一、Android Bitmap加载大尺寸图片优化: 压缩原因: 1.imageview大小如果是200*300那么加载个2000*3000的图片到内存中显然是浪费可耻滴行为; 2.最重要的是图片过大时直接加载原图会造成OOM异常(out of memory内存溢出) 所以一般对于大图我们需要进行下压缩处理 看不懂英文的话木有关系,本篇会有介绍 主要处理思路是: 1.获取图片的像素宽高(不加载图片至内存中,所以不会占用资源) 2.计算需要压缩的比例 3.按将图片用计算出的比例压缩,并加载至内存中使用 官网大图片加载教程(上面网址里的)对应代码就是: /** * 获取压缩后的图片 * @param res * @param resId * @param reqWidth 所需图片压缩尺寸最小宽度 * @param reqHeight 所需图片压缩尺寸最小高度 * @return */ public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId, int reqWidth, int reqHeight) {

// 首先不加载图片,仅获取图片尺寸 final BitmapFactory.Options options = new BitmapFactory.Options(); // 当inJustDecodeBounds设为true时,不会加载图片仅获取图片尺寸信息 options.inJustDecodeBounds = true; // 此时仅会将图片信息会保存至options对象内,decode方法不会返回bitmap 对象 BitmapFactory.decodeResource(res, resId, options); // 计算压缩比例,如inSampleSize=4时,图片会压缩成原图的1/4 options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight); // 当inJustDecodeBounds设为false时,BitmapFactory.decode...就会返回图片对象了 options.inJustDecodeBounds = false; // 利用计算的比例值获取压缩后的图片对象 return BitmapFactory.decodeResource(res, resId, options); } 代码详解: 核心方法是BitmapFactory.decode...(...., options) ...的意思是此外还有一系列的decodeFile/decodeStream等等方法,都是利用options灵活解析获取图片, 只不过解析图片的来源不同罢了,比如网络图片获取,一般就是解析字节流信息然后decode获取图片实例 Options是图片配置信息,参数详细介绍下: inJustDecodeBounds 是否只解析边界 设为true时去decode获取图片,只会加载像素宽高信息 设为false时decode则会完全加载图片 inSampleSize 压缩比例

2011221728-黄凯-基于Android的图片管理器设计与实现

摘要 随着智能手机走进普通人的生活,它将成为人们获取信息的主要设备。因此,手机的应用服务将会有很大的发展空间,手机图片管理服务就是其中的一项。Android平台支持各种应用的开发,它是目前最流行的开源智能手机操作系统,最新的版本是android4.2,提供了便捷灵活的开发接口。 本课题在Android SDK2.2平台下,设计了一个手机图片管理。采用了Android 平台的Framework层提供的接口,实现了图片预览、图片动态切换、停止播放等功能,支持jpg,bmp,png和gif图片格式,该程序是独立的apk文件,可以安装在android2.2以上的系统内。它可以让手机成为一个图片管理,用户可以将其放在心仪的地方,来展示美好的图片,而不必再去购买别的设备就能拥有精美的图片管理了。 本文开头首先对图片管理软件的研究背景做了简单介绍,其次简述了现今流行的几个手机开发平台,详细介绍了Android开发平台的架构,并描述了Android 开发环境的搭建过程;接下来是对系统设计的介绍,本文从对购书比价系统的分析,到数据库的设计,再到系统客户端的实现都做了详细的解说,并把有些细节和技术提出来做单一的解说;紧接着本文描述了此客户端的图片管理软件的测试过程和如何发布此系统。。本设计完成后,能够实现以下功能:图片的浏览、图片属性的修改、图片的一些基本操作。 关键词:Android ;java;图片管理; I

第1章绪论 1.1 系统开发背景 如今手机就像钥匙一样,是我们出门必带的物品之一。随着科技的迅猛发展,现在的手机都是智能手机,它的功能不仅仅只是用来打电话或是收发短信,我们还可以用它听歌看视频、用蓝牙传输数据、玩游戏、上网等等。据数据资料显示,截至2013年1月我国有8亿手机用户,使用手机上网的用户超过了6亿。基于android平台手机的发展趋势,本设计以android平台手机为核心制作了一个图片浏览器。 本次设计运用android平台手机作为研究开发对象,配合Java语言程序设计以及面向对象思想设计了一种手机图片浏览器。本设计完成后,能够实现以下功能:图片的浏览、图片属性的修改、图片的一些基本操作,一些远程模块的调用、根据不同图片扩展名来实现图片只能的打开,同时给以后的一些实用软件留下了借口、可以实现与手机之间的通讯。以及电脑之间的共享。 在设计时,按照设计的要求,从可靠性、经济性、安全性三个方面进行考虑,通过设计方案的比较,确定出来一套即经济又可行的方案。 本次设计是对所学知识的综合运用,把理论知识和实践相结合。在本次设计与检验过程中遇到了许多实际问题,比如android平台手机及其运行环境的选择,不熟悉myeclipse和eclipse软件的使用方法,不熟悉开发技巧,可能会发生一些微小功能不能实现、软件运行不稳定,如何设计软件的最佳外观效果等。所有的这些问题,我们都通过查阅资料,咨询老师一一解决了,为设计的成功提供了保障。 本文通过方案确认,介绍了设计中所用到的技术、开发思想,以及android 2

android:设置背景图片、背景颜色透明

android:设置背景图片、背景颜色透明 2012-03-15 16:51:09|分类: android UI |标签: |字号大中小订阅 Button或者ImageButton的背景设为透明或者半透明 半透明

相关文档 最新文档