diff --git a/app/src/main/java/com/arkj/app/MainActivity.java b/app/src/main/java/com/arkj/app/MainActivity.java index aff6228..bac9e55 100644 --- a/app/src/main/java/com/arkj/app/MainActivity.java +++ b/app/src/main/java/com/arkj/app/MainActivity.java @@ -1,22 +1,32 @@ package com.arkj.app; import android.app.Activity; +import android.graphics.Bitmap; import android.os.Bundle; import android.view.View; import android.webkit.WebSettings; import android.webkit.WebView; +import android.webkit.WebViewClient; +import android.widget.ProgressBar; import android.widget.Toast; public class MainActivity extends Activity { // 轮播图 URL private static final String CAROUSEL_URL = "https://alist.kg8.net/d/蓝奏云/IMG_20190602_082558.webp"; + private WebView carouselWebView; + private View loadingView; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - // 加载轮播图 + // 初始化视图 + carouselWebView = findViewById(R.id.carouselWebView); + loadingView = findViewById(R.id.carouselLoading); + + // 加载轮播图(预加载,完成后显示) loadCarousel(); // 设置功能按钮点击事件 @@ -27,15 +37,56 @@ public class MainActivity extends Activity { } private void loadCarousel() { - WebView carouselWebView = findViewById(R.id.carouselWebView); + // 显示加载指示器 + if (loadingView != null) { + loadingView.setVisibility(View.VISIBLE); + } + + // 隐藏 WebView 直到加载完成 + carouselWebView.setVisibility(View.INVISIBLE); + WebSettings settings = carouselWebView.getSettings(); settings.setJavaScriptEnabled(true); settings.setLoadWithOverviewMode(true); settings.setUseWideViewPort(true); + settings.setCacheMode(WebSettings.LOAD_DEFAULT); + + // 设置 WebViewClient 监听加载完成 + carouselWebView.setWebViewClient(new WebViewClient() { + @Override + public void onPageStarted(WebView view, String url, Bitmap favicon) { + super.onPageStarted(view, url, favicon); + // 开始加载 + } + + @Override + public void onPageFinished(WebView view, String url) { + super.onPageFinished(view, url); + // 加载完成,显示 WebView,隐藏加载指示器 + carouselWebView.setVisibility(View.VISIBLE); + if (loadingView != null) { + loadingView.setVisibility(View.GONE); + } + } + + @Override + public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { + super.onReceivedError(view, errorCode, description, failingUrl); + // 加载失败,显示错误提示 + if (loadingView != null) { + loadingView.setVisibility(View.GONE); + } + Toast.makeText(MainActivity.this, "轮播图加载失败", Toast.LENGTH_SHORT).show(); + } + }); // 加载网络图片 - String html = "" + - "" + + String html = "" + + "
" + + "" + + "
" + ""; carouselWebView.loadDataWithBaseURL(null, html, "text/html", "UTF-8", null); } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 1dfd142..ba067e1 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -76,15 +76,30 @@ android:focusable="true"/> - - + + android:layout_marginBottom="20dp"> + + + + + + +