首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何允许ImageView的大小随AnimationDrawable的不同而变化?

要实现ImageView的大小随AnimationDrawable的不同而变化,可以通过以下步骤实现:

  1. 创建一个AnimationDrawable对象,并添加帧动画资源。AnimationDrawable animationDrawable = new AnimationDrawable(); animationDrawable.addFrame(getResources().getDrawable(R.drawable.frame1), 100); animationDrawable.addFrame(getResources().getDrawable(R.drawable.frame2), 100); // 添加更多帧动画资源...
  2. 设置AnimationDrawable作为ImageView的背景,并启动动画。ImageView imageView = findViewById(R.id.imageView); imageView.setBackground(animationDrawable); animationDrawable.start();
  3. 监听AnimationDrawable的动画帧变化事件,并在每一帧变化时更新ImageView的大小。animationDrawable.setOneShot(false); // 设置循环播放 animationDrawable.setCallback(new Drawable.Callback() { @Override public void invalidateDrawable(Drawable who) { // 动画帧变化时回调 imageView.setImageDrawable(who); // 根据当前帧的大小更新ImageView的大小 imageView.setLayoutParams(new LinearLayout.LayoutParams(who.getIntrinsicWidth(), who.getIntrinsicHeight())); } @Override public void scheduleDrawable(Drawable who, Runnable what, long when) {} @Override public void unscheduleDrawable(Drawable who, Runnable what) {} });

这样,当AnimationDrawable播放动画时,ImageView的大小会根据每一帧的大小进行自动调整。

推荐的腾讯云相关产品:腾讯云移动直播(https://cloud.tencent.com/product/lvb)可以用于实时音视频直播,适用于直播、在线教育、互动娱乐等场景。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

不同年份遥感影像,如何演示其变化

珠海经济特区作为我国最早设立四个经济特区之一,珠海成为国际社会观察中国改革开放一扇重要窗口。从1980到2020,基于近40年遥感影像,一起来看下珠海经济特区变迁。...采用“文件+数据库”存储和管理方式来管理影像文件,是管理大规模影像理想模型。 接下来看下详细操作步骤。 01 收集数据 在Google Earth Engine上下载了1984-2015年影像。...所有年份数据分辨率是38米,4波段,Web墨卡托坐标系。1984年显示结果如下: 02 计算数据金字塔和统计数据 构建金字塔可以改善栅格数据集显示性能。...计算统计值,ArcGIS 应用程序能适当地对显示栅格数据进行拉伸和符号化操作。 03 建立镶嵌数据集、并添加影像 在文件地理数据库中创建镶嵌数据集,坐标系使用影像坐标系。...结果如下: 04 添加时间字段 要进行时间动画显示,对Zorder字段进行赋值,获取Name字段值。 05 制作时间动画 双击镶嵌数据集,打开图层属性。

11110

AnimationDrawable 实现正在加载旋转动画

要实现这样效果  就是中间那个   正在拼命加载数据中  然后是那个动画在不停旋转, 其实这个过程      是在你访问网络数据请求时候,出现,一般只停留几秒钟效果    看了效果图,接下来介绍下这个如何实现...=(TextView)activity.findViewById(R.id.lodiing_text);//文字是不用动态变化 loadingImageView.setBackgroundResource...(R.anim.lodding);//帧播放设置文件 final AnimationDrawable animationDrawable = (AnimationDrawable...(R.anim.frame_animation);              animDrawable = (AnimationDrawableimageView.getBackground...animDrawable = (AnimationDrawable)imageView.getBackground();   //设置动画透明度

2K80

独家 | 批大小如何影响模型学习 你关注几个不同方面

超参数定义了更新内部模型参数之前要处理样本数,这是确保模型达到最佳性能关键步骤之一。当前,针对不同大小如何影响ML工作流,已经开展了很多研究。本文对批量大小和监督学习相关研究进行了总结。...为全面了解该过程,我们将关注批大小如何影响性能、训练成本和泛化。 训练性能/损失 训练性能/损失是我们关心主要指标。“批大小”与模型损失有一个有趣关系。...我们提出方法不需要任何微调,因为我们遵循现存训练时间表;当学习速率按系数α下降时,我们会将批大小按系数α增加。” 他们在具有不同学习速率时间表几种不同网络架构上展示了这一假设。...结论:更大批次→更少更新+移动数据→更低计算成本。 结尾 我们看到,批量大小在模型训练过程中非常重要。这就是为什么在大多数情况下,您将看到使用不同大小训练模型。...对于其他方法(如对比式学习),情况可能会发生变化。对比学习似乎从更大批次+更多迭代次数中受益颇多。

68220

Android各种各样Drawable-更新中

InsetDrawable表示是两个Drawable与容器之间边距,*当控件需要背景比实际边框 小时候,比较适合使用InsetDrawable* 比如使用这个可以解决我们自定义Dialog与屏幕之间...使用了*.9.png图片技术后,只需要采用一套界面切图去适配不同分辨率,而且大幅减少安装包大小。 要点: 左上拉伸 右下内容 ?...ClipDrawable实现效果,它根据level属性值,决定剪切区域大小。...虽然这些drawable会有交差或者重叠区域,但是它们是位于不同层,彼此之间不会影响。...---- TransitionDrawable TransitionDrawable 是LayerDrawable子类,不过它只负责管理两层drawable,并且提供了一个透明度变化动画,可以控制从一层

92330

Android开发(43) 动画演示,会跑小人,从屏幕左侧跑到右侧

需求 想做一个动画,一个会跑小人,从屏幕右侧跑道右侧,于是做了个尝试,上图: 实现步骤 要完成这样需要三步: 做一个 帧动画 (frame animation),由多张图片组成,组成小人连续跑动样子...在onStart里启动动画 第一步,描述 “人物动作变化动画 准备多个动作图片,写个xml animation : <?xml version="1.0" encoding="utf-8"?....setVisibility(View.GONE); mAnimationDrawable = (AnimationDrawable) imageView1.getDrawable();...; public class MainActivity extends Activity { ImageView imageView1; AnimationDrawable mAnimationDrawable...imageView1.setVisibility(View.GONE); mAnimationDrawable = (AnimationDrawable) imageView1.getDrawable

1.2K00

Android仿打开微信红包动画效果实现代码

实现原理: 准备3张不同角度图片,通过AnimationDrawable帧动画进行播放即可 代码实现: 1、编写动画xml文件: <?...根标签下,通过item标签对动画中每一个图片进行声明 android:duration 表示展示所用该图片时间长度 ,可通过该参数来设置图片旋转速度 2、设置布局控件 <ImageView...dimen/dimen_100" android:background="@drawable/open_red_animation_drawable" / 注意是使用background来加载动画不是...src 3、代码中启动需要播放动画控件 //ivOpen指的是需要播放动画ImageView控件 AnimationDrawable animationDrawable = (AnimationDrawable...)ivOpen.getBackground(); animationDrawable.start();//启动动画 总结 以上所述是小编给大家介绍Android仿打开微信红包动画效果实现代码,希望对大家有所帮助

1.5K10

帧动画和补间动画

添加条目节点,设置资源android:drawable=”@drawable/xxx” 设置执行时间,android:duration=”100” 逐帧添加对应图片 获取ImageView...对象,通过findViewById() 调用ImageView对象setBackgroundResource()设置背景资源,参数:资源文件 调用ImageView对象getBackground()...方法获取到AnimationDrawable对象 getBackground()方法是异步在一个单独线程里面执行,因此,有时候,下面的代码是播放不了,建议放在按钮点击事件里,或者屏幕触摸事件里...调用AnimationDrawable对象start()方法,开始播放 tween动画 透明度 获取AlphaAnimation对象,new AlphaAnimation(),参数:从0.0f透明度,...ScaleAnimation对象,new ScaleAnimation(),参数: 原始宽,变化后宽,原始高,变化后高,Animation.RELATIVE_TO_SELF,o.5f x以中心,Animation.RELATIVE_TO_SELF

72520

Android开发之逐帧动画优化

Android上如果使用逐帧动画的话,可以很方便地使用AnimationDrawable,无论是先声明xml还是直接代码里设置,都是几分钟事,但使用AnimationDrawable有一个致命弱点,...isStop; } } 上面的类提供了两种方法,循环播放和只播放一次,stopPlay是停止当前动画,mLastPlayFrameNo是当前图片是所有图片中第几张,循环中当当前frameNo...不等于mLastPlayFrameNo时回收图片,这个相当重要,处理不当可能会报出使用回收后bitmap异常,因为有可能用户一开始ImageView设置src就是第0张,又或者用户停止动画后又想重新播放...好了,讲述完这个类,看一下如何使用吧,很简单。...SceneAnimation waitAnim = new SceneAnimation(waitImageView, waitResIds, 100); // 指定绑定ImageView和图片资源数组以及每张图片延时

1.7K20

2014-10-31Android学习------序列帧动画,开始,结束监听解决--------GIF动画实现

4.当这些做完了,我们就需要把动画加载到视图上去了,加载到视图上是怎么实现呢?...ImageView img = (ImageView)findViewById(R.id.spinning_wheel_image); img.setBackgroundResource(R.drawable.spin_animation...通过API学习我们知道了要想利用这个AnimationDrawable我们必须先去定义一些XML文件,每一个xml文件描述就是动画要显示内容,该动画每一帧动画内容是有来定义,...);//用这个id对应文件来布置ImageView视图内容,也就是当前我们继承AnimationView类, AnimationDrawable anim = (AnimationDrawable...(也就是一个xml文件对应有多少帧(item个数)) 到这里为止,这个类作用和函数我们都基本掌握了,接下来就是如何在activity中去实现它呢?

1.4K30

Android十八章:帧动画

小时候有一种书右下角把每一个动作画好,再快速翻看,就可以看到一连串动画了,这就是帧动画。 帧动画只要几张图片就能加载出动画效果了。其中帧动画是按照一定时间间隔显示一张图片。...在xml设置帧动画 具体实现在drawable下(不是anim下),新建xml文件,用animation-list标签包着多个item标签,设置item标签drawable和duration值。...以imageview为载体可以在xml设置src和在类中用iamgeview.getDrawable获取AnimationDrawable,再调用start方法或者stop方法。 <?...## 在xml设置帧动画 具体实现在drawable下(不是anim下),新建xml文件,用animation-list标签包着多个item标签,设置item标签drawable和duration值...以imageview为载体可以在xml设置src和在类中用iamgeview.getDrawable获取AnimationDrawable,再调用start方法或者stop方法。

57410

Android开发笔记(十七)GIF动画实现GifAnimation

但在手机上由于系统资源紧张,所以Android并没有直接支持GIF格式,如果在ImageView中放入一张gif文件,你会发现显示出来只是该gif文件第一帧图片。...对于如何从gif文件中提取出每帧图片,博主在之前文章中有做了说明,详见《Android开发笔记(十)常用图片加工操作》。 可是手工分解gif文件也太麻烦了,如果gif数量多的话,岂不累坏了。...队列 AnimationDrawable animationList = new AnimationDrawable(); animationList.addFrame(getDraw(R.drawable.flow_p1...类,而是通过AnimationDrawable来实现(又是Drawable)。...开发笔记(十五)淡入淡出动画》 5、AnimationDrawable:见本文《Android开发笔记(十七)GIF动画实现》 6、BitmapDrawable:见本文《Android开发笔记(十七

1.2K60

动画那点小秘密

1 实现动画效果几种方式 1 补间动画   补间动画即开发者只需要指定开始、结束关键帧,动画变化“中间帧”则由系统根据补间动画加速器算法计算补齐。...帧动画需要用到核心类是AnimationDrawable。 帧动画特点是: 实现简单; 效率低; 视觉工作量大。...7 其他   还可以通过自定义类,用定时器给ImageView更换背景图片方式实现动画;如果使用到了游戏引擎,游戏引擎中对动画渲染效率有增强,动画效果会很流畅。...),为了降低功耗,尽量控制动画大小,以及动画出现时机,最好是用户触发某个操作后执行动画效果,不要一进入界面就执行动画; 谨慎使用AnimationDrawable,在5.0之前会很耗内存;并且AnimationDrawable...AnimationEasingFunctions AndroidViewAnimations Yalantis组织-开源了很多优秀动画库 android-pathview 4 参考资料 如何高效学习

88120
领券