• Android 欢迎界面淡入效果并用WebView加载网址


    1.首先是欢迎界面布局文件,只有一个背景图片:welcome.xml:

    1 <?xml version="1.0" encoding="utf-8"?>
    2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    3     android:id="@+id/ll_img"
    4     android:layout_width="fill_parent"
    5     android:layout_height="fill_parent"
    6     android:background="@drawable/nav"
    7     android:orientation="vertical" >
    8 
    9 </LinearLayout>

    2.然后是欢迎界面java代码,WelcomeActivity.java,有淡入进入界面效果和延迟跳转效果:

     1 package com.example.appshell;
     2 
     3 import android.app.Activity;
     4 import android.content.Intent;
     5 import android.os.Bundle;
     6 import android.os.Handler;
     7 import android.view.Window;
     8 import android.view.animation.AlphaAnimation;
     9 import android.view.animation.Animation;
    10 import android.widget.LinearLayout;
    11 
    12 public class WelcomeActivity extends Activity {
    13     @Override
    14     public void onCreate(Bundle savedInstanceState) {
    15         super.onCreate(savedInstanceState);
    16         // 取消标题
    17 
    18         this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    19         setContentView(R.layout.welcome);
    20         startAnim();// 淡入效果跳转
    21         // mHandler.sendEmptyMessageDelayed(GOTO_MAIN_ACTIVITY, 0);// 延迟3秒跳转
    22     }
    23 
    24     private void startAnim() {
    25         LinearLayout welcomeImg = (LinearLayout) findViewById(R.id.ll_img);
    26         AlphaAnimation animail = new AlphaAnimation(0.1f, 1.0f);
    27         animail.setDuration(3000);
    28         welcomeImg.startAnimation(animail);
    29         animail.setAnimationListener(new Animation.AnimationListener() {
    30             @Override
    31             public void onAnimationStart(Animation animation) {
    32             }
    33 
    34             @Override
    35             public void onAnimationRepeat(Animation animation) {
    36             }
    37 
    38             @Override
    39             public void onAnimationEnd(Animation animation) {
    40                 Intent intent = new Intent();
    41                 intent.setClass(WelcomeActivity.this, MainActivity.class);
    42                 startActivity(intent);
    43                 finish();
    44             }
    45         });
    46     }
    47 
    48     private static final int GOTO_MAIN_ACTIVITY = 0;
    49     private Handler mHandler = new Handler() {
    50         public void handleMessage(android.os.Message msg) {
    51 
    52             switch (msg.what) {
    53             case GOTO_MAIN_ACTIVITY:
    54                 Intent intent = new Intent();
    55                 intent.setClass(WelcomeActivity.this, MainActivity.class);
    56                 startActivity(intent);
    57                 finish();
    58                 break;
    59 
    60             default:
    61                 break;
    62             }
    63         };
    64     };
    65 }

    3.跳转界面布局文件activity_main.xml,包括WebView控件和一个进度条:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity" >
    
        <WebView
            android:id="@+id/webView"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    
        <ProgressBar
            android:id="@+id/pb"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true" />
    
    </RelativeLayout>

    4.跳转界面java代码MainActivity.xml,展示webview加载网页的进度条效果

    package com.example.appshell;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.KeyEvent;
    import android.view.View;
    import android.view.Window;
    import android.webkit.WebChromeClient;
    import android.webkit.WebSettings;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
    import android.widget.ProgressBar;
    
    public class MainActivity extends Activity {
    
        private static final String URL = "http://www.cnblogs.com/_ymw/";
    
        WebView webView;
        ProgressBar bar;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            // 取消标题
    
            this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    
            setContentView(R.layout.activity_main);
    
            // 实例化WebView
            webView = (WebView) this.findViewById(R.id.webView);
            /** 调用loadUrl()方法进行加载内容 */
    
            /** 设置WebView的属性,此时可以去执行JavaScript脚本 */
    
            webView.getSettings().setJavaScriptEnabled(true);
            webView.setVerticalScrollbarOverlay(true); // 指定的垂直滚动条有叠加样式
            WebSettings settings = webView.getSettings();
            settings.setUseWideViewPort(true);// 设定支持viewport
            settings.setLoadWithOverviewMode(true);
            settings.setBuiltInZoomControls(true);
            settings.setSupportZoom(true);// 设定支持缩放
    
            if (webView != null) {
    
                bar = (ProgressBar) findViewById(R.id.pb);
                webView.setWebChromeClient(new WebChromeClient() {
    
                    @Override
                    public void onProgressChanged(WebView view, int newProgress) {
                        if (newProgress == 100) {
                            bar.setVisibility(View.GONE);
                        } else {
                            if (View.INVISIBLE == bar.getVisibility()) {
                                bar.setVisibility(View.VISIBLE);
                            }
                            bar.setProgress(newProgress);
                        }
                        super.onProgressChanged(view, newProgress);
                    }
    
                });
    
                webView.loadUrl(URL);
                webView.setWebViewClient(new WebViewClient() {
                    @Override
                    public boolean shouldOverrideUrlLoading(WebView view, String url) {
                        // 返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器
                        view.loadUrl(url);
                        return true;
                    }
                });
            }
    
        }
    
        // 改写物理按键——返回的逻辑
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_BACK) {
                if (webView.canGoBack()) {
                    webView.goBack();// 返回上一页面
                    return true;
                } else {
                    System.exit(0);// 退出程序
                }
            }
            return super.onKeyDown(keyCode, event);
        }
    
    }

    云盘分享链接:http://yunpan.cn/cFzLptV942f4q  访问密码 c0da

  • 相关阅读:
    【axios三部曲】三、极简核心造轮子
    反压缩 js ,我的万花筒写轮眼开了,CV 能力大幅提升
    Ubuntu20.04.4无法访问github的问题
    csv/json/list/datatable导出为excel的通用模块设计
    Autofac实现拦截器和切面编程
    failed to execute script pyi_rth_multiprocessing
    Vue请求本地JSON文件的方法
    关于初次使用阿里云服务器的一些相关记录
    mysql 在windows下和linux下的 安装教程
    vuex 修改参数
  • 原文地址:https://www.cnblogs.com/_ymw/p/4923386.html
Copyright © 2020-2023  润新知