首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Android动画-视图的初始状态

Android动画-视图的初始状态
EN

Stack Overflow用户
提问于 2012-05-24 23:23:04
回答 5查看 1.2K关注 0票数 3

我得到了一个Animation,它导致视图滑出屏幕向右滑动,这与以下代码的工作预期一样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Animation outtoRight = new TranslateAnimation(
         Animation.RELATIVE_TO_SELF,  0.0f, Animation.RELATIVE_TO_SELF,  +1.0f,
         Animation.RELATIVE_TO_SELF,  0.0f, Animation.RELATIVE_TO_SELF,   0.0f
        );
outtoRight.setDuration(500);
outtoRight.setInterpolator(new AccelerateInterpolator());
outtoRight.setFillAfter(true);

这意味着我应用此动画的视图将漂亮地滑出屏幕。当然,我有一个相反的滑入方式。但我的问题是,我如何才能让视图离开屏幕,这样我就可以在不应用该动画的情况下滑动它一次?

我玩过负边距之类的游戏,但我似乎找不到合适的属性来让我的视图在发布时从屏幕上消失。

为了澄清,我可以在开始时用另一个动画完美地隐藏它,但我可以看到它消失了,即使只有一小段时间。必须有一种方法让它在一开始就不在那里,然后让我把它滑进去。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-05-29 12:31:49

我不是动画专家,但我会试一试:)

这是我正在使用的动画,它从右侧滑入一个视图

EnterByRight.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <set xmlns:android="http://schemas.android.com/apk/res/android"
     android:shareInterpolator="false">
    <translate android:fromXDelta="100%" android:toXDelta="0%"
      android:fromYDelta="0%" android:toYDelta="0%"
     android:duration="400"/>
   </set>

在我的例子中,我将动画化用xml定义的TableLayout。当我想让它滑进去的时候:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Animation animationEnterByRight = AnimationUtils.loadAnimation(this, R.anim.animationentrancebyright);
tableLayout.startAnimation(animationEnterByRight);

它来自屏幕之外,我不需要先把它放在外面,动画会帮我解决这个问题。如果您想在视图加载后立即对其进行动画处理,则可以很好地执行此操作。

如果你需要让你的视图在一段时间内保持“不可篡改”,然后显示动画,除了View.Visible和View.Gone,我想不出其他的解决方案。但我不明白为什么这是个问题?

干杯!

票数 4
EN

Stack Overflow用户

发布于 2012-05-25 08:10:48

一个可能的解决方案(考虑到这个问题的受欢迎程度非常低)可能是我目前使用的那个,尽管我一点也不喜欢它。我制作这个视图是为了让View.GONE具有可见性,并应用动画使其向右移动。

然后,第一次(我控制它是第一次在视图上使用标记),我将可见性设置为View.VISIBLE,并应用动画来滑入。这可以像预期的那样工作,没有毛刺和跳跃,但我仍然担心同时向许多与性能相关的元素添加动画的影响。

票数 3
EN

Stack Overflow用户

发布于 2012-05-29 19:28:33

实际上,你自己的答案一点也不差。我唯一要改变的不是将视图可行性设置为GONE,而是使用addChild()手动创建和添加它。

在独立线程中完成,在独立线程中添加动画,并且只在主线程上调用addChild()

通常,您应该在单独的线程上执行初始化过程,以便UI线程不会受到影响,如果花费的时间超过0.4秒,您应该开始播放加载动画至少0.5秒。这是我能告诉你的最好的UI实践,我在我的应用程序中做到了,它工作得很好!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10746639

复制
相关文章
VBA实用小程序50: 在指定的单元格中插入指定的形状
下面的自定义函数使用Shapes集合对象的AddShape方法及其参数,可以在指定的单元格中插入指定的形状。
fanjy
2019/07/19
2.5K0
VBA实用小程序50: 在指定的单元格中插入指定的形状
mysql数据库中指定值在所有表中所有字段中的替换
1.写一个存储过程,查指定数据库中所有的表名: CREATE PROCEDURE init_replace(in orig_str varchar(100),in new_str varchar(100),in db_name varchar(100)) BEGIN DECLARE t_name VARCHAR(50); DECLARE done int default 0; DECLARE cur CURSOR FOR SELECT DISTINCT table_name as name FROM INF
憨批程序员
2020/10/18
8.2K0
修改表名列名mysql_怎么修改mysql的表名和列名?
在mysql中,可以通过“ALTER TABLE 旧表名 RENAME 新表名;”语句来修改表名,通过“ALTER TABLE 表名 CHANGE 旧字段名/列名 新字段名/列名 新数据类型;”语句来修改列名。
全栈程序员站长
2022/08/30
11.8K0
修改表名列名mysql_怎么修改mysql的表名和列名?
在 JavaScript 中替换所有指定字符 3 种方法
在 JS 没有提供一种简便的方法来替换所有指定字符。 在 Java 中有一个 replaceAll() ,replaceAll(String regex, String replacement))方法使用给定的参数 replacement 替换字符串所有匹配给定的正则表达式的子字符串。
前端小智@大迁世界
2020/06/28
30.7K0
下载整个Yum源的所有安装包到本地指定目录
 由于公司业务大部分都在内网环境下运行,内网环境无法直接使用yum安装升级更新软件,所以需要自建Yum源来满足目前日常工作需要。
非著名运维
2022/12/12
3.1K0
下载整个Yum源的所有安装包到本地指定目录
Java中解决列名不匹配的两种方式
引用它的语句使用 resultMap 属性就行了(注意我们去掉了 resultType 属性)。比如:
用户8983410
2021/10/07
1.2K0
使用VBA在工作表中列出所有定义的名称
有时候,工作簿中可能有大量的命名区域。然而,如果名称太多,虽然有名称管理器,可能名称的命名也有清晰的含义,但查阅起来仍然不是很方便,特别是想要知道名称引用的区域时,如果经常要打开名称管理器查找命名区域,会非常麻烦,也浪费时间。
fanjy
2022/11/16
6.6K0
在Chrome中截取整个网页
经常使用谷歌浏览器的话,如果要想对网页截图,大多都直接使用系统自带截屏方式或者第三方截屏。但如果要把网页整个截取下来的话,你可以试试Chrome自带的截屏功能。步骤如下:
Inkedus
2020/04/16
1.6K0
在Chrome中截取整个网页
在MySQL表中查询出所有包含emoji符号的数据
1. 从以下地址下载emoji的utf8编码文件 https://gist.github.com/JoshyPHP/225b3c77005a89d81511
用户1148526
2022/10/04
13.5K0
在MySQL表中查询出所有包含emoji符号的数据
mysql 查外键关联关系 (指定被引用表,查哪些表对其有外键引用)
从 INFORMATION_SCHEMA.KEY_COLUMN_USAGE 表中查。
微风-- 轻许--
2022/04/13
3.7K0
mysql 查外键关联关系 (指定被引用表,查哪些表对其有外键引用)
PHP 获取指定 URL 页面中的所有链接
以下代码可以获取到指定 URL 页面中的所有链接,即所有 a 标签的 href 属性:
Z4
2020/04/22
7.6K0
在Greenplum(PostgreSQL)表中查询出所有包含emoji符号的数据
1. 从以下地址复制emoji的unicode https://unicode.org/emoji/charts/full-emoji-list.html
用户1148526
2022/10/06
3.6K0
在Greenplum(PostgreSQL)表中查询出所有包含emoji符号的数据
mysql 修改 表名 列名 为小写
SELECT CONCAT( ‘ALTER TABLE ‘, table_name, ‘ RENAME ‘, LOWER( table_name ), “;” ) AS statement FROM information_schema.TABLES WHERE table_schema = ‘数据库’ AND table_name LIKE ‘表名%’;
全栈程序员站长
2022/09/03
4.1K0
VBA实用小程序63: 查找并返回与指定属性匹配的所有单元格
本文介绍的VBA程序是一个自定义函数,整理自jkp-ads.com,很好地增强了内置的CallByName函数的适用性。
fanjy
2020/11/09
1.5K0
VBA实用小程序63: 查找并返回与指定属性匹配的所有单元格
【Oracle】查询某张表的列名及备注
查询某张表的列的备注 select COLUMN_NAME 列名, COMMENTS 注释 from user_col_comments where table_name = '表名' 返回结果: 列名 注释 CREATE_TIME 创建时间 ... ... 查询某张表的列定义 select COLUMN_NAME 列名, DATA_TYPE 类型, DATA_LENGTH 长度 from USER_TAB_COLUMNS where TABLE_NAME = '表名'; 返回结果: 列名 类型 长度
tonglei0429
2021/08/27
2.4K0
在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱)
但是现在我计划开源我的一个项目,于是自己个人使用的姓名和邮箱就需要在开源的时候改为使用我公开的姓名和邮箱。对于旧仓库,我将废弃,将来所有的精力都将在开源版本的仓库中;而对于开源版本的新仓库,由于此前没有人克隆过,所以也不会因为历史的修改产生问题。所以,我可以很放心地更改全部的 git 仓库历史。
walterlv
2023/10/22
4110
在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱)
VBA代码:将整个工作簿中的所有公式转换为值
有趣的是,不管工作簿中有多少张表,它都是用一个操作来处理的。通常情况下,都是试图通过遍历工作表来做到这一点,然而并没有那么有效。
fanjy
2023/10/10
1.3K0
VBA代码:将整个工作簿中的所有公式转换为值
VBA实用小程序61: 在文件夹内所有文件中运行宏/在工作簿所有工作表中运行宏
在文件夹中所有文件上运行宏,或者在Excel工作簿中所有工作表上运行宏,这可能是一种非常好的Excel自动化方案。例如处理类似的数据工作簿文件并想要提取数据或转换该工作簿。下面给出了适用这种情况的一些VBA程序,这些程序代码整理自analystcave.com,供有兴趣的朋友参考。
fanjy
2019/12/12
4.9K0
查数据库中的表,了解大体结构
大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。 SELECT TOP 100 Percent sysobjects.name, sysindexes.rows FROM sysindexes with(nolock) JOIN sysobjects with(nolock) ON sysindexes.id = sysobjects.id AND sysobjects.xtype = 'u' WHERE sysindexes.indid in(0, 1) ord
全栈程序员站长
2021/12/28
1.3K0
点击加载更多

相似问题

如何使用jdbcTemplate更新整个对象而不指定列名?

30

在jOOQ中插入记录而不指定列名

20

选择列而不指定列名

21

不指定列名的INSERT INSERT表

41

在SQL Server中查找空列名称

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文