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

我想在setVisibility上动画化视图,但它只在第一次工作

setVisibility是Android开发中的一个方法,用于设置视图的可见性。它接受一个整型参数,可以取三个值:View.VISIBLE(可见)、View.INVISIBLE(不可见,但仍占据空间)、View.GONE(不可见,且不占据空间)。

如果你想在setVisibility上动画化视图,可以使用Android的动画框架来实现。以下是一个示例代码:

代码语言:java
复制
// 导入动画相关的类
import android.view.View;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;

// 获取要操作的视图
View view = findViewById(R.id.your_view_id);

// 创建一个透明度动画,从完全可见到完全不可见
Animation animation = new AlphaAnimation(1.0f, 0.0f);
animation.setDuration(1000); // 设置动画持续时间为1秒

// 设置动画结束时的监听器
animation.setAnimationListener(new Animation.AnimationListener() {
    @Override
    public void onAnimationStart(Animation animation) {
        // 动画开始时的操作
    }

    @Override
    public void onAnimationEnd(Animation animation) {
        // 动画结束时的操作
        view.setVisibility(View.GONE); // 将视图设置为不可见且不占据空间
    }

    @Override
    public void onAnimationRepeat(Animation animation) {
        // 动画重复时的操作
    }
});

// 启动动画
view.startAnimation(animation);

这段代码会将指定的视图在1秒内逐渐变为不可见,并在动画结束后将其设置为不可见且不占据空间。

动画化视图在用户界面设计中非常常见,可以提升用户体验和界面交互的吸引力。在实际应用中,可以根据具体的场景和需求选择不同的动画效果和参数。

腾讯云相关产品中,与动画化视图相关的产品和服务可能包括:

  1. 腾讯云移动应用分析(Mobile App Analytics):提供移动应用数据分析和用户行为分析,可用于评估和改进动画效果的用户体验。详情请参考腾讯云移动应用分析
  2. 腾讯云移动推送(Push Notification):用于向移动设备发送推送通知,可用于触发动画化视图的更新和显示。详情请参考腾讯云移动推送
  3. 腾讯云移动直播(Mobile Live Streaming):提供移动直播服务,可用于实时展示动画化视图的效果。详情请参考腾讯云移动直播

以上仅为示例,具体的产品选择应根据实际需求和场景进行评估。

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

相关·内容

Android:Fragment + Activity 二合一

实现前,先说明Fragment的几个相关知识点: 1、Fragment的视图部分其实就是onCreateView返回的View; 2、同一个Activity里的多个通过add装载的Fragment...,他们视图层是叠加上去的: hide()并不销毁视图,仅仅让视图不可见,即View.setVisibility(GONE);, show()让视图变为可见,即View.setVisibility(VISIBLE...(到这之前可能有小伙伴想到,通过add不hide上个Fragment的思路怎么样?...,这时FragmentA的视图已经是VISIBLE状态,又从B进入到Fragment C,这是我们应该把A的视图GONE掉: SwipeBackFragment里: @Override public...是在其基础拓展的一个库,用于实现滑动返回功能,可以用于各种项目结构。

65320

Android开发:实现滑动退出 Fragment + Activity 二合一

实现前,先说明Fragment的几个相关知识点: 1、Fragment的视图部分其实就是onCreateView返回的View; **2、同一个Activity里的多个通过add装载的Fragment...,他们视图层是叠加上去的: hide()并不销毁视图,仅仅让视图不可见,即View.setVisibility(GONE);, show()让视图变为可见,即View.setVisibility...(到这之前可能有小伙伴想到,通过add不hide上个Fragment的思路怎么样?...,这时FragmentA的视图已经是VISIBLE状态,又从B进入到Fragment C,这是我们应该把A的视图GONE掉: SwipeBackFragment里: @Override public...是在其基础拓展的一个库,用于实现滑动返回功能,可以用于各种项目结构。

88530

android下拉加载更多

原作者的基础,写了一些注释,和帮助大家更好的阅读理解,(可能其中有些地方注释不准,欢迎指正,谢谢) 源代码下载地址:http://download.csdn.net/detail/weidi1989...private RotateAnimation reverseAnimation;// 逆向箭头动画 private boolean isRecored;// 用于保证startY的值一个完整的...touch事件中被记录一次 private int headContentWidth;// 头部View内容的宽度 private int headContentHeight;// ...           addHeaderView(headView, null, false);// 加到ListView的头部view,ListView组件提供了两个很实用的功能,那就是可以顶部和底部添加自定义的视图...(View.VISIBLE);// 进度条可见             arrowImageView.clearAnimation();// 先清除动画             arrowImageView.setVisibility

2.4K60

实战 | 使用揭露动画(Reveal Effect)做一个丝滑的Activity转场动画

提笔之际(附总体思路) ---- 最近跟几个小伙伴实践一个项目,考虑到界面效果,我们决定使用揭露动画作为Activity的转场动画。 ? 这里主要是负责这部分的实现。...最后找到了这三篇,算是解答了的疑问: https://www.jianshu.com/p/b75548e488df 这篇思路很好,写得也很走心,启发了设计的思路跟注意到的一些问题,像揭露动画的逻辑放在哪里之类的...; 这篇文档跟代码算是帮上大忙了,有较大的参考价值; 不同的是作者的思路是跳转的目标活动中,启动做揭露动画的收挽,收挽结束后再finish(); 这里根据情况修改为跳转的目标活动中按下返回键即...GitHub中附方法详解图 引子 ---- 使用揭露动画做一个丝滑的Activity转场动画, 关于这个需求,可能不同的同学,会有不同的问题, 这里把可能遇到的问题跟我完成这个demo的过程中遇到的问题做一个总结...详细可见参考文档; “丝滑”之解 这个转场动画要实现得丝滑,需要注意几个细节: 活动A跳转到活动B的情况下, a.A点击触发跳转时刻,揭露动画要放在哪个活动展开; b.B按下返回键之后,揭露动画又要放在哪个活动收挽

1.9K30

【译】Android技术栈,1#架构

简介:## 作为例子,将使用以下这个项目,事实就是一个简单的电影概念目录,可以称之为视图或者其它。...它目前依赖common module,通过这个类库处理API请求,在这个例子中使用Square出品的Retrofit,将在接下来的博客中介绍Retrofit。...这个模块包含Presenter和View。 每一个Activity,Fragment,Dialog都实现MVPView接口,它指定了一些View上进行显示,隐藏,显示信息等操作。...通信## 对于这个项目,选择了Message Bus(译者注:消息总线)系统,这个系统对于广播事件,或者两个组件之间建立通信是非常有用的,尤其特别适用于后者。...基本,通过Bus发送事件,对事件感兴趣的类,需要订阅Bus,才能消费那个事件。 适用这个系统可以降低模块间的耦合度。 为了实现这个系统总线,使用Square出品的Otto类库。

43830

Ask Apple 2022 与 SwiftUI 有关的问答(

隐式动画和显式动画Q:你好!是否有其他方法可以直接根据状态的变化对视图进行动画处理而不使用 onChange 修饰器?的代码是这样的。....不过,传统的 viewModel 意义不建议将视图( 结构本身 )作为视图模型。...换句话说,如果写 Color.green.task { self.someState += } ,是否能保证视图第一次出现之前状态一定会改变?...A:onAppear 和 task 都是我们第一次视图上运行 body 之前调用的。对于你的用例,它们在行为是等同的。...这就涉及到了所有符合 DynamicProperty 协议的属性包装器的一个特点:视图的生存期内仅有第一次初始的实例会与视图创建关联。详细请阅读 避免 SwiftUI 视图的重复计算[22] 。

12.2K20

Android开发笔记(一百四十四)高仿支付宝的头部伸缩动画

第二张是导航栏完全收缩时的界面,此时头部导航栏剩矮矮的一个长条。 ? 看起来很眼熟是不是,上面的截图正是仿支付宝首页的头部效果。...appbar_scrolling_view_behavior" /> 然而仅仅实现上述布局并非万事大吉,支付宝首页的头部伸缩时可是有动画效果的...,新工具栏的各控件也要慢慢变得清晰起来,也就是淡出效果。...如果导航栏是从收缩状态向下展开,则此时相应的做上述渐变动画的取反效果,即: 1、导航栏从收缩状态向下展开时,头部的各控件要慢慢向背景色过渡,也就是淡入效果;同时展开导航栏的下部分布局,并且该布局的各控件渐渐变得清晰...看起来还比较复杂,如果只对某个控件做渐变动画还好,可是导航栏的控件有好几个,而且并不固定常常会增加和修改。倘若要对导航栏的各控件逐一动画过去,不但费力气,而且后期也不好维护。

1.2K10

几行代码搞定画廊效果

接下来我们开始构造方法,首先希望可以通过单例的形式实现点击的时候动画交互效果,这样能有效的节约资源和内存,那么首先我们先无脑new出来一个utils先。...我们获取了一些必要的参数,比如当前itemView和ImageViewwindow中的位置,这样才能做动画的参数值,但是该怎么样做动画呢,首先属性动画虽然能改变view的属性,但是并不能改变view在当前层级的位置...(View.INVISIBLE); 接下来我们就该思考如何使用动画了,这也多亏了数学成绩多年来惊人的稳定,两年高考成绩110分的骄人成绩(咳咳,说的是两年加起来的总分),差点就直接放弃了。...接下来就好写多了,我们方法内,执行动画,监听动画结束即可,动画结束时,我们需要给真实的itemView和imageView赔礼道歉,并把它们放出来并且换一身新衣服了。...field.set(manager, -1); } } catch (Exception e) { } } } 接下来我们只需要在adapter中执行itemView的click来看看效果了,首先我们全局进行初始我们的

1K10

Android中轴旋转特效实现,制作别样的图片浏览器

使用Camera让视图进行旋转的示意图,如下所示: ?...然后重点看下applyTransformation()方法,首先根据动画播放的时间来计算出当前旋转的角度,然后让Camera也根据动画播放的时间Z轴进行一定的偏移,使视图有远离视角的感觉。...然后创建图片列表的适配器PictureAdapter,用于ListView可以显示一组图片的名称,代码如下所示: public class PictureAdapter extends ArrayAdapter...首先在onCreate()方法中调用了initPics()方法,在这里对图片列表中的数据进行初始。然后获取布局中控件的实例,并让列表中的数据ListView中显示。...本篇文章中的主要代码其实都来自于API Demos里,自己原创的部分并不多。

1.3K60

Android实现中轴旋转特效 Android制作别样的图片浏览器

然后重点看下applyTransformation()方法,首先根据动画播放的时间来计算出当前旋转的角度,然后让Camera也根据动画播放的时间Z轴进行一定的偏移,使视图有远离视角的感觉。...然后创建图片列表的适配器PictureAdapter,用于ListView可以显示一组图片的名称,代码如下所示: public class PictureAdapter extends ArrayAdapter...(rotation); } }); } /** * 初始图片列表数据。...首先在onCreate()方法中调用了initPics()方法,在这里对图片列表中的数据进行初始。然后获取布局中控件的实例,并让列表中的数据ListView中显示。...本篇文章中的主要代码其实都来自于API Demos里,自己原创的部分并不多。

1.3K10

Android——卡顿优化布局篇(含学习资料分享)

有兴趣更深层学习的,可以去看看界面渲染容器DisplayList 什么是过度绘制 Overdraw(过度绘制)描述的是屏幕的某个像素同一帧的时间内被绘制了N次。...Android提供的方案就是ViewStub,他是一个不可见的大小为0的视图,具有懒加载功能,存在于视图中,但只有设置setVisibility()和inflate()方法调用后才会渲染填充视图,能为初始加载...不要急,其实是setVisibility()方法实际设置内部视图的可见性,而不是ViewStub本身。...(这一阶段主线程中使用CPU构建) 绘制阶段 : 调用OpenGL(即使用GPU)对构建好的视图进行绘制渲染,绘制的内容保存在Graphic Buffer 并交由 SurfaceFlinger 显示。...(Android 5.0+ 使用Render Thread线程,专门负责 UI 渲染和动画显示。) 以上证得硬件加速具有不错的优点,但它不是万能的。

72600

Fragment全解析系列(二):正确的使用姿势

---- Fragment是可以让你的app纵享丝滑的设计,如果你的app想在现在基础性能大幅度提高,并且占用内存降低,同样的界面Activity占用内存比Fragment要多,响应速度Fragment...使用Fragment过程中,大部分情况下都是用show(),hide(),而不是replace()。...3、关于FragmentManager你需要知道的 FragmentManager栈视图: (1)每个Fragment以及宿主Activity(继承自FragmentActivity)都会在创建时,初始一个...但是如果流程较为复杂,比如Fragment A需要启动一个新的Fragment B并且关闭当前A,或者A启动B,B获取数据后,想在返回到A时把数据交给A(类似Activity的startActivityForResult...),又或者你保证Fragment转场动画的情况下,使用pop(tag\id)从栈内退出多个Fragment,或者你甚至想Fragment有一个类似Activity的SingleTask启动模式,那么你可以参考下一篇

1.3K30

1.viewpager

实现这种效果: 有好几个页面,上面是viewpager可以左右滑,中间是按钮,最后一页显示出来,点击跳转到主页面。下面的几个点的实现可以是几张图片,也可以动态的添加几个点,小红点跟随页面动。...其实这个LayoutParams类是用于child view(子视图) 向 parent view(父视图)传达自己的意愿的一个东西(孩子想变成什么样向其父亲说明)其实子视图视图可以简单理解成 一个...需要注意的是LayoutParams只是ViewGroup的一个内部类这里边这个也就是ViewGroup里边这个LayoutParams类是 base class 基类实际每个不同的ViewGroup...void onPageSelected(int position) { if (position == mImageIds.length - 1) {// 最后一个页面 btnStart.setVisibility...(View.VISIBLE);// 显示开始体验的按钮 } else { btnStart.setVisibility(View.INVISIBLE); } } // 滑动状态发生变化

784130

1.viewpager

实现这种效果: 有好几个页面,上面是viewpager可以左右滑,中间是按钮,最后一页显示出来,点击跳转到主页面。下面的几个点的实现可以是几张图片,也可以动态的添加几个点,小红点跟随页面动。...其实这个LayoutParams类是用于child view(子视图) 向 parent view(父视图)传达自己的意愿的一个东西(孩子想变成什么样向其父亲说明)其实子视图视图可以简单理解成 一个...需要注意的是LayoutParams只是ViewGroup的一个内部类这里边这个也就是ViewGroup里边这个LayoutParams类是 base class 基类实际每个不同的ViewGroup...void onPageSelected(int position) { if (position == mImageIds.length - 1) {// 最后一个页面 btnStart.setVisibility...(View.VISIBLE);// 显示开始体验的按钮 } else { btnStart.setVisibility(View.INVISIBLE); } } // 滑动状态发生变化

26620

【建议收藏】17个XML布局小技巧

什么算是好的xml布局呢,认为核心有两点,一个是提升开发效率,另一个是提升app性能。围绕着这两点,也精心整理出了17个xml布局小技巧,下面一起来看看都有哪些,你又掌握了几个呢?...GuideLine是ConstraintLayout布局的辅助对象,仅用于布局定位使用,它被标记了View.GONE,并不会显示设备。...上面的content_scrolling.xml: 实际布局只有一个TextView,但是预览视图中还可以看到FloatingActionButton,这就是使用了tools:showIn属性...,但是页面渲染加载的时候仍会实例创建对象,并初始它的属性,很明显这是浪费资源的,所以这个时候用ViewStub是一个很好的优化手段。...LayoutTransition对象用于构造动画,跟一般的动画使用差不多,感兴趣的可以看下官方文档或者跟下源码。

72110

Android 可拖动悬浮窗实现

当然,最后也不会把公司项目代码分享给大家伙,这里就给大家讲解下实现的思路。...TextView 来作为 indicatorView,做好准备工作就要开始编写实际的操作逻辑啦,首先定义一个内部手势类,用来实现操作逻辑 class FloatViewOnGestureListener...实现逻辑之前,因为整体都在悬浮窗上实现,需要定义悬浮窗内容的一些必要属性,因为 indicatorView 和 rootView 的属性差不多,所以列出 indicatorView 的属性列表,具体的可以看...通过如上代码可以发现,contentView 的 layout 属性变化都是通过动画来实现的,这边采用属性动画,来不断改变滑动的距离来实现悬浮窗显示和隐藏的效果,也就是就是上面代码中的 rightInSmoothToLeft...这里附上 demo 的效果,虽然和实际项目的效果还是有差别,但是核心思想在这了 手势滑动悬浮框 最后双手捧上源码 悬浮窗源码(https://github.com/kukyxs/AndroidCodes

1.9K21
领券