文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android绘制炫酷引导界面

2022-06-06 08:24

关注

一个超炫的引导界面,分享给大家

代码:
MainActivity.java


package com.bzu.gxs.webview1;
import android.app.Activity;
import android.os.Build;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends Activity {
  private MyWebView myWebView;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    myWebView = (MyWebView) findViewById(R.id.webView);
    myWebView.getSettings().setJavaScriptEnabled(true);
    init();
    myWebView.loadUrl("http://h5.eqxiu.com/s/F93iW6fu");
  }
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.my, menu);
    return true;
  }
  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.action_settings) {
      return true;
    }
    return super.onOptionsItemSelected(item);
  }
  @Override
  public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && myWebView.canGoBack()) {
      myWebView.goBack();
      return true;
    }
    return super.onKeyDown(keyCode, event);
  }
  public void init(){
    if(Build.VERSION.SDK_INT >= 19) {
      myWebView.getSettings().setLoadsImagesAutomatically(true);
    } else {
      myWebView.getSettings().setLoadsImagesAutomatically(false);
    }
  }
}

MyWebView.java


package com.bzu.gxs.webview1;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
import android.widget.Toast;

public class MyWebView extends WebView{
  private ProgressBar progressBar;
  private Context mContext;
  public MyWebView(Context context, AttributeSet attributeSet) {
    super(context,attributeSet);
    mContext = context;
    progressBar = (ProgressBar) LayoutInflater.from(context).inflate(R.layout.progressbar,null);
    progressBar.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,6,0,0));
    addView(progressBar);
    setWebChromeClient(new WebChromeClient());
    setWebViewClient(new WebViewClient(){
      @Override
      public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
        Toast.makeText(mContext,"Gxs"+description,Toast.LENGTH_SHORT).show();
      }
    });
    this.getSettings().setBuiltInZoomControls(true);
    this.getSettings().setUseWideViewPort(true);
  }
  public class WebChromeClient extends android.webkit.WebChromeClient {
    @Override
    public void onProgressChanged(WebView view, int newProgress) {
      if (newProgress == 100) {
        progressBar.setVisibility(GONE);
      } else {
        if (progressBar.getVisibility() == GONE)
          progressBar.setVisibility(VISIBLE);
          progressBar.setProgress(newProgress);
      }
      super.onProgressChanged(view,newProgress);
    }
  }
  @Override
  protected void onScrollChanged(int l, int t, int oldl, int oldt) {
    LayoutParams layoutParams = (LayoutParams) progressBar.getLayoutParams();
    layoutParams.x = l;
    layoutParams.y = t;
    progressBar.setLayoutParams(layoutParams);
    super.onScrollChanged(l, t, oldl, oldt);
  }
}

activity_main.xml


<?xml version="1.0" encoding="utf-8"?>
<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="com.bzu.gxs.webview1.MainActivity">
  <com.bzu.gxs.webview1.MyWebView
    android:id="@+id/webView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:text="Hello World!" />
</RelativeLayout>

progressbar.xml


<?xml version="1.0" encoding="utf-8"?>
<ProgressBar xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/ProgressBar"
  style="?android:attr/progressBarStyleHorizontal"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:indeterminate="false"
  android:maxHeight="10dip"
  android:minHeight="10dip"
  android:progress="50"
  android:progressDrawable="@drawable/greenprogress" />

注意: 需要在清单文件 AndroidManifest.xml 中加入:
<uses-permission android:name="android.permission.INTERNET"/>

您可能感兴趣的文章:Android客户端首次启动引导界面Android UI设计与开发之实现应用程序只启动一次引导界面Android UI设计与开发之仿人人网V5.9.2最新版引导界面Android UI设计与开发之ViewPager仿微信引导界面以及动画效果Android UI设计与开发之ViewPager介绍和简单实现引导界面Android绘制炫酷的引导界面Android利用ViewPager实现用户引导界面效果的方法很赞的引导界面效果Android控件ImageSwitcher实现android 引导界面的实现方法Android自定义ViewGroup实现竖向引导界面


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯