日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android上webview界面切换动画效果

發布時間:2025/7/14 Android 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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界面切换动画效果的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。