首页
学习
活动
专区
工具
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 制作时间动画 双击镶嵌数据集,打开图层属性。

17510
  • Android中的动画

    ​​学习内容 Ø 帧动画 Ø 补间动画 Ø 动画方式切换组件 能力目标 Ø 掌握Android中动画的基本概念及分类 Ø 熟练掌握帧动画的实现 Ø 熟练掌握各种补间动画的实现 Ø 掌握如何使用动画方式实现组件之间的切换效果...其中帧动画使用AnimationDrawable来实现,在本质上是将多个图像以相同或不同的时间间隔进行切换来实现动画。...补间动画需要指定动画开始和结束状态,然后由系统自动生成中间状态的图像,它包括移动、缩放、旋转、透明度的变化等。...2.2 帧动画 在Android系统中大多数免费应用都会在界面中添加广告以取得收入,而多数广告都如我们经常看到的GIF图片那样,几张不同的图片不断变换以增加广告内容的充实度,而这里就需要我们使用帧动画技术来实现这些效果...,而地球本身也会按照顺时针的方向围绕着自身的地轴旋转。

    11610

    AnimationDrawable 实现正在加载的旋转动画

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

    2.1K80

    Android各种各样的Drawable-更新中

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

    1K30

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

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

    76820

    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.3K00

    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.5K30

    帧动画和补间动画

    添加条目节点,设置资源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

    74620

    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

    Android开发之逐帧动画优化

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

    1.7K20

    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方法。

    59010

    android ProgressBar(进度条)

    而这个动画,一般是使用AnimationDrawable来实现的!...好的,我们来 定义一个AnimationDrawable文件: PS:用到的图片素材:进度条图片素材打包.zip 运行效果图: 实现步骤: 在res目录下新建一个:anim文件件,然后创建amin_pgbar.xml...,剩下的就你自己来了哦~在需要显示进度条的时候,让ImageView可见; 在不需要的时候让他隐藏即可!...另外其实Progressbar本身有一个indeterminateDrawable,只需把 这个参数设置成上述的动画资源即可,但是进度条条的图案大小是不能直接修改的,需要Java代码中 修改,如果你设置了宽高...mTextPaint.setTextSize(80); mTextPaint.setTextAlign(Paint.Align.CENTER); } //重写测量大小的

    1.4K20
    领券