Android上webview界面切换动画效果
使用Android上的webview控件时需要跳转到下一个html时,要求当前界面缓缓的向左移动,下一个html界面缓缓的从右边出现。这与常规动画不同,一般方式将无法制作出动画。主要实现方法可以先保存上一个网页的快照,与将要跳转的页面结合起来,制作相关动画。
下面是主要代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
@Override
public void onProgressChanged(WebView view, int newProgress) {
if (newProgress== 100 ){
if (iamgeView!= null )
iamgeView.setVisibility(View.GONE);
//view.setVisibility(View.VISIBLE);
//DroidGap.this.root.addView(view);
System.out.println( "加载完成" );
Animation translate_in=AnimationUtils.loadAnimation(DroidGap. this , R.drawable.translate_in);
translate_in.setFillAfter( true );
translate_in.setDuration( 1000 );
translate_in.setDetachWallpaper( true );
// translate_in.
view.setAnimation(translate_in);
Animation translate_out=AnimationUtils.loadAnimation(DroidGap. this , R.drawable.translate_out);
translate_out.setAnimationListener( new AnimationListener(){
@Override
public void onAnimationEnd(Animation animation) {
if ( null !=iamgeView){
DroidGap. this .root.removeView(iamgeView);
iamgeView= null ;
}
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
});
translate_out.setFillAfter( true );
translate_out.setDuration( 1000 );
translate_out.setDetachWallpaper( true );
// translate_in.
if ( null !=iamgeView){
iamgeView.setAnimation(translate_out);
}
} else {
if ( null ==iamgeView){
iamgeView= new ImageView(DroidGap. this );
view.setDrawingCacheEnabled( true );
Bitmap bitmap=view.getDrawingCache();
if ( null !=bitmap){
Bitmap b= Bitmap.createBitmap(bitmap);
iamgeView.setImageBitmap(b);
}
DroidGap. this .root.addView(iamgeView);
}
}
super .onProgressChanged(view, newProgress);
}
|
1
|
<span style= "color: rgb(51, 51, 51); font-family: tahoma, 宋体; font-size: 14px; line-height: 22.3999996185303px; text-align: justify; background-color: rgb(250, 250, 252);" >其中的iamgeView:自己定义的ImageView控件。</span>
|
R.drawable.translate_in:进入的translate动画
1
2
3
4
5
6
|
<? xml version = "1.0" encoding = "utf-8" ?>
< set xmlns:android = "http://schemas.android.com/apk/res/android" >
< translate android:fromXDelta = "100%" android:toXDelta = "0%p"
android:duration = "100" />
</ set >
|
1
|
< span style = "color: rgb(51, 51, 51); font-family: tahoma, 宋体; font-size: 14px; line-height: 22.3999996185303px; text-align: justify; background-color: rgb(250, 250, 252);" >R.drawable.translate_out:出的translate动画</ span >
|
1
2
3
4
5
6
|
< span style = "color: rgb(51, 51, 51); font-family: tahoma, 宋体; font-size: 14px; line-height: 22.3999996185303px; text-align: justify; background-color: rgb(250, 250, 252);" ></ span >< pre name = "code" class = "html" ><? xml version = "1.0" encoding = "utf-8" ?>
< set xmlns:android = "http://schemas.android.com/apk/res/android" >
< translate android:fromXDelta = "0%" android:toXDelta = "-100%p"
android:duration = "100" />
</ set >
|
该代码详细描述:在onProgressChanged方法中,首先判定是否加载进度是否到100,
在没有执行完的情况下,先去new ImageView对象,iamgeView=new ImageView(DroidGap.this);
然后进行设置view.setDrawingCacheEnabled(true);很重要的一句话,
为了下面能够对webview界面截取图片,即 Bitmap bitmap=view.getDrawingCache();
之后将bitmap加到imageview中:imageview.setImageBitmap(bitmap);
然后添加到当前的Linearlayout布局中即DroidGap.this.root.addView(iamgeView);
如果下面的页面加载完成了,就执行进入动画,即view.setAnimation(translate_in);
同时对该Imageview执行out动画,并且在动画的监听的结束时执行
DroidGap.this.root.removeView(iamgeView);即清除掉当前生成的屏幕截图。
iamgeView=null;
最后一点要注意清除截图,否则android虚拟机可能会出现报错。
Android上webview界面切换动画效果相关推荐
- android图片跳转动画效果,Android实现Activity界面切换添加动画特效的方法
本文以实例形式展示了Android实现Activity界面切换添加动画特效的方法,对于Android程序设计人员来说有很好的参考借鉴价值.具体方法如下: 了解Android程序设计的人应该知道,在An ...
- android开发界面转换,Android开发Activity界面切换添加动画特效的方法
释放双眼,带上耳机,听听看~! 随着互联网的快速发展,现在我们开发的界面或者动画特效效果都非常好,其实这对于程序员的挑战是非常大的,下文是技术狗小编为大家带来的Android实现Activity界面切 ...
- Android 动画之View动画效果和Activity切换动画效果
View动画效果: 1.>>Tween动画 通过对View的内容进行一系列的图形变换(平移.缩放.旋转.透明度变换)实现动画效果,补间动画需要使用<set>节点作为根节点,子节 ...
- android动画篇——仿小米计算器切换动画效果
实现思路 此效果实现用到了:LayoutTransition和ObjectAnimator的相关知识 思路:当点击切换按钮时顶部ViewGroup和左侧ViewGroup可见性设置为Gone,并自动开 ...
- android学习笔记---56_activity切换动画与页面切换动画,自定义activity窗口切换动画效果的实现.
2013/5/17 Java技术qq交流群:JavaDream:251572072 56_activity切换动画与页面切换动画 ----------------------------------- ...
- android+百叶窗动画效果,js实现横向百叶窗效果网页切换动画效果的方法
本文实例讲述了js实现横向百叶窗效果网页切换动画效果的方法.分享给大家供大家参考.具体分析如下: 这是一款很简洁但是效果却不错的网页切换效果,点击新网页后,网页会出现蓝白相间的百叶窗线条自动切换,直到 ...
- 转 Android的Activity屏幕切换动画(一)-左右滑动切换
这段时间一直在忙Android的项目,总算抽出点时间休息一下,准备把一些项目用到的Android经验分享一下. 在Android开发过程中,经常会碰到Activity之间的切换效果的问题,下面介绍一下 ...
- 利用MATLAB实现图片切换动画效果详解
内容摘要:本博文介绍MATLAB图片切换动画效果的制作以及GIF文件保存,并结合具体代码详细解释.介绍了利用MATLAB编程进行几幅图片的轮流切换,切换时实现与幻灯片切换相似的炫酷的图片切换特效.其中 ...
- Android的Activity屏幕切换动画左右滑动切换
在Android开发过程中,经常会碰到Activity之间的切换效果的问题,下面介绍一下如何实现左右滑动的切换效果,首先了解一下Activity切换的实现,从Android2.0开始在Activity ...
最新文章
- HackerRank:JavaScript 是最知名的编程语言
- 4.QT4中的connect的实现
- hive sqoop 分区导入_使用sqoop将hive分区表的数据导入到mysql的解决方案:shell脚本循环...
- 蓝桥杯python青少年_蓝桥杯大赛青少年组省赛结果公布
- No changes detected
- java实现一个单例设计模式_Java正确实现一个单例设计模式的示例
- ik分词和jieba分词哪个好_Pubseg:一种单双字串的BiLSTM中文分词工具
- 二叉树最近公共祖先 LCA
- centos系统在Visual Studio Code 中使用超级管理员权限保存文件
- NLP语言资源 | 汽车、金融等9大领域预训练词向量与依存、拼音等4类特殊向量开放...
- 收藏!示波器探头的选择与使用
- 网络序、主机序、点分十进制的IP地址转换
- zeros函数和ones函数的用法
- Intellij Idea 所有快捷键列表,工欲善其事必先利其器。
- 学校计算机信息固定资产编号,学校固定资产的分类和编号(仅供参考).doc
- 根式为什么是根式?(我可能疯了?)
- linux使用gcc实现扫雷,基于linux环境下扫雷应用程序
- Java中POJO及其细分XO、DAO的概念
- Python入门习题大全——检查用户名
- conda 导出环境文件的方法(文件方法)