android动画特效之解决解决移动后闪烁现象,解决输入法弹出后位置回复原状,解决两个动画叠加
以下代码实现的效果是:
BoundOpenView从居中移动到顶部,移动完后,BoundSendView从隐藏变为显示,并从顶部移动BoundOpenView下方20dp处,同时透明度慢慢增加。
private void BoundOpenViewAnimation() {
Log.i(TAG, "BoundOpenViewAnimation");
final int top = BoundOpenView.getTop()
- DensityUtil.dip2px(mContext, 20);
final int height = BoundOpenView.getHeight();
TranslateAnimation animation = new TranslateAnimation(0, 0, 0, 0 - top);
animation.setDuration(200);// 设置动画持续时间
BoundOpenView.clearAnimation();
BoundOpenView.setAnimation(animation);
animation.setFillAfter(true);
// ** 开始动画 *//*
animation.setAnimationListener(new AnimationListener() { @Override
public void onAnimationEnd(Animation animation) {
//BoundOpenView.clearAnimation();// 解决移动后闪烁现象
TranslateAnimation anim = new TranslateAnimation(0, 0, 0,
0);
BoundOpenView.setAnimation(anim);
//解决输入法弹出后位置回复原状
RelativeLayout.LayoutParams lp = new RelativeLayout
.LayoutParams(BoundOpenView.getWidth(),BoundOpenView.getHeight());
//lp.topMargin=DensityUtil.dip2px(mContext, 20);
lp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
BoundOpenView.setLayoutParams(lp);
int move = height + DensityUtil.dip2px(mContext, 20);
BoundSendViewAnimation(move);
} @Override
public void onAnimationRepeat(Animation animation) {
} @Override
public void onAnimationStart(Animation animation) { }
});
animation.startNow();
} private void BoundSendViewAnimation(int move) { Log.i(TAG, "move:"+move);
Animation translateanimation = new TranslateAnimation(0, 0, 0, move);
translateanimation.setDuration(400);// 设置动画持续时间
Animation alphaAnimation=new AlphaAnimation(0.01f,1.0f);
alphaAnimation.setDuration(500);// 设置动画持续时间
//动画叠加
AnimationSet set=new AnimationSet(true); //创建动画集对象
set.addAnimation(translateanimation); //添加位置变化动画
set.addAnimation(alphaAnimation); //添加尺寸变化动画
set.setFillAfter(true); //停留在最后的位置
set.setFillEnabled(true);
BoundSendView.clearAnimation();
BoundSendView.setAnimation(set); //设置动画
BoundSendView.setVisibility(View.VISIBLE); // ** 开始动画 *//*
set.setAnimationListener(new AnimationListener() { @Override
public void onAnimationEnd(Animation animation) {
TranslateAnimation anim = new TranslateAnimation(0, 0, 0,
0);
BoundSendView.setAnimation(anim);
RelativeLayout.LayoutParams lp = new RelativeLayout
.LayoutParams(BoundSendView.getWidth(),BoundSendView.getHeight()); lp.addRule(RelativeLayout.BELOW,R.id.bound_open_view);
lp.topMargin=DensityUtil.dip2px(mContext, 20);
BoundSendView.setLayoutParams(lp);
} @Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub } @Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub } });
set.startNow(); //启动动画
}
DensityUtil类:
import android.content.Context; public class DensityUtil {
/**
* 根据手机的分辨率从 dp 的单位 转成为 px(像素)
*/
public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
} /**
* 根据手机的分辨率从 px(像素) 的单位 转成为 dp
*/
public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
}
android动画特效之解决解决移动后闪烁现象,解决输入法弹出后位置回复原状,解决两个动画叠加的更多相关文章
- 如何解决机器重启后MySql服务跑不起来了1067,附解决过程
今个一位同事的mysql跑不起来了,之前还好好的,问我怎么恢复,我没在她出问题的机器上弄,在自己机器上试的,最终在CTO的指导下解决了,现记录于此. 1,首先把她的mysql安装文件夹.数据结构文件. ...
- CSS3和js炫酷点击按钮3D翻转动画特效
简要教程 flipside是一款使用CSS3和js制作的炫酷点击按钮无缝过渡到确认面板的过渡动画特效.该点击按钮特效在按钮不同方向的边部点击时,产生的过渡动画特效是不一样的. 在线预览 源码下载 ...
- 9个超绚丽的HTML5 3D图片动画特效
在Web 1.0时代,我们的网页中图片数量非常少,而且都是以静态图片为主.HTML5的出现,推动了Web 2.0的发展,同时也催生出了很多绚丽的HTML5图片动画特效,特别是有些还有3D的动画效果.本 ...
- Android输入法弹出时覆盖输入框问题
本文来自网易云社区 作者:孙有军 当一个activity中含有输入框时,我们点击输入框,会弹出输入法界面,整个界面的变化效果与manifest中对应设置的android:windowSoftInput ...
- 解决Android Studio 3.0导入module依赖后unable to merge index
解决Android Studio 3.0导入module依赖后unable to merge index 项目需要使用im, 在项目里导入了腾讯im的几个module依赖, 项目无法编译, 报错una ...
- Android实现Activity页面跳转切换动画特效
了解Android程序设计的人应该知道,在Android 2.0之后有了overridePendingTransition(),其中里面两个参数,一个是前一个activity的退出,另一个activi ...
- [置顶] android 自定义ListView实现动画特效
通过自定义ListView实现动画特效,被点击元素A向前移,A之前元素往后移动. 重点在于动画的实现: 具体代码如下: package com.open.widget; import java.uti ...
- Android ROM开发(二)——ROM架构以及Updater-Script脚本分析,常见的Status错误解决办法
Android ROM开发(二)--ROM架构以及Updater-Script脚本分析,常见的Status错误解决办法 怪自己二了,写好的不小心弄没了,现在只好重新写一些了,上篇简单的配置了一下环境, ...
- Android绘图机制(四)——使用HelloCharts开源框架搭建一系列炫酷图表,柱形图,折线图,饼状图和动画特效,抽丝剥茧带你认识图表之美
Android绘图机制(四)--使用HelloCharts开源框架搭建一系列炫酷图表,柱形图,折线图,饼状图和动画特效,抽丝剥茧带你认识图表之美 这里为什么不继续把自定义View写下去呢,因为最近项目 ...
随机推荐
- 关于jquery mobile 页面闪烁与抖动问题
1.闪烁:在用a链接跳转到另一个页面的时候,页面总会抖动几下,其实就是页面切换时的transition特效,jqm貌似默认了这项. 解决方案:在a链接添加transition:none; 属性就可以啦 ...
- C#创建服务及使用程序自动安装服务
.NET创建一个即是可执行程序又是Windows服务的exe 不得不说,.NET中安装服务很麻烦,即要创建Service,又要创建ServiceInstall,最后还要弄一堆命令来安装和卸载. 今天给 ...
- Eclipse 使用技巧合辑
修改Eclipse默认JDK "window"(窗口)---"Preferences.."(首选项),然后在弹出的对话框中的左边:选"Java&quo ...
- windows 7 telnet 开启关闭
win7运行telnet提示:'telnet' 不是内部或外部命令,也不是可运行的程序或批处理文件 原因:win7默认没有打开此功能 解决方案:控制面板->程序和功能->打开或关闭wind ...
- LINUX SCP 远程 文件 复制
首先,以确保直接两个机器IP可以在每个ping通过 然后使用SCP命令从第一台主机向第二台主机复制文件 scp src chiwei@192.168.8.144:/home/chiwei/mydisk ...
- JavaScript中的execCommand()命令详解及实例展示
execCommand方法是执行一个对当前文档,当前选择或者给出范围的命令.处理Html数据时常用如下格式:document.execCommand(sCommand[,交互方式, 动态参数]) ,其 ...
- Smarty属性
Attributes [属性] 大多数函数都带有自己的属性以便于明确说明或者修改他们的行为. smarty函数的属性很像HTML中的属性. 静态数值不需要加引号,但是字符串建议使用引号. 如果用 ...
- 树莓派学习笔记 1 -- 硬件的需求以及raspbian系统的安装
树莓派(Raspberry Pi) -- 基于Linux系统的大小只有信用卡大小的卡片式机器. 按照发明者的想法,他是想降低学习程序开发的成本而设计制作的这款产品.你可以理解为一个简陋版的电脑.树 ...
- Jquery框架
现在Jquery框架对于开发人员基本上是无人不知,无人不晓了,用起来十分的方便,特别是选择器十分强大,提高了我们的开发速度.但是好多人也只是停留在了会用的基础上,我个人觉得会用一个框架不算什么,只能说 ...
- ASP.NET MVC 使用MSBuild部署的几个注意事项
ASP.NET MVC 使用MSBuild部署的几个注意事项 做新项目,当时参考NopCommerce的结构,后台Nop.Admin是一个独立的Area Web Site,但部署的时候发现,使用一键发 ...