Android实现一个天气界面竟然如此简单?
16lz
2021-01-26
- 效果图
如何实现
- 实现的方法是通过外部的第三方插件实现的:和风天气开发平台
- 和风天气开发平台有商业版和免费版的,有四种插件
样式 | 应用场合 |
---|---|
网页标准插件 | 适合在任何网页或小程序中嵌入天气区块包括天气预报、实况、预警、分钟降雨、生活指数等,支持自定义大小和颜色 |
网页简约插件 | 小巧的天气插件,支持任何网页任何位置,完全自定义样式,可与你的导航栏、目录或内容区等位置 |
SDK插件 | 快速的在iOS和Android应用中展现天气内容,完全自定义样式和布局,可在任何位置运行,与你的应用完全融为一体 |
H5插件 | 响应式天气H5页面,可用于移动端、小程序、公众号等场景 |
- 我这里用的是第四种,个人感觉也是最方便的一种,因为是直接产生一个网址链接,其他方法网站上有详细的介绍
其实主要还是里面的WebView是重点,其他的可不看
<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".TianqiActivity"> <!--我这里将实现效果中的头部去掉了,不然有点小长--> <WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="0dp" app:layout_constraintBottom_toTopOf="@+id/constraintLayout5" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="parent"> </WebView> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/constraintLayout5" android:layout_width="0dp" android:layout_height="50dp" android:background="#79BD98" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@+id/textView17" app:layout_constraintStart_toStartOf="parent"> <ImageView android:id="@+id/imageView9" android:layout_width="30dp" android:layout_height="30dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@+id/textView16" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:srcCompat="@drawable/left" /> <TextView android:id="@+id/textView16" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginLeft="8dp" android:text="后退" android:textSize="20sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toEndOf="@+id/imageView9" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/constraintLayout4" android:layout_width="0dp" android:layout_height="50dp" android:background="#79BD98" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/textView17"> <ImageView android:id="@+id/imageView10" android:layout_width="30dp" android:layout_height="30dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toEndOf="@+id/textView18" app:layout_constraintTop_toTopOf="parent" app:srcCompat="@drawable/right" /> <TextView android:id="@+id/textView18" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginEnd="8dp" android:layout_marginRight="8dp" android:text="前进" android:textSize="20sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@+id/imageView10" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> <TextView android:id="@+id/textView17" android:layout_width="2dp" android:layout_height="0dp" android:background="#000000" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/webView" /></androidx.constraintlayout.widget.ConstraintLayout>
- 这里必须在和风天气开发平台上进行注册,根据你所选的样式可以自动给你一个网页链接,因为我选的是H5插件,就是一个链接。网页标准插件生成的却是几行html代码。
package com.c201801020240.fuzhibin01;import androidx.appcompat.app.AppCompatActivity;import androidx.constraintlayout.widget.ConstraintLayout;import android.os.Bundle;import android.util.Log;import android.view.View;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.ImageView;public class TianqiActivity extends AppCompatActivity { WebView webView; ConstraintLayout constraintLayout; ConstraintLayout constraintLayout1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_tianqi); webView=findViewById(R.id.webView); //都知道Android用WebView无法后退,只能自己设置点击事件后退,我这里顺便也加了前进按钮 constraintLayout=findViewById(R.id.constraintLayout5);//后退 constraintLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { webView.goBack(); } }); constraintLayout1=findViewById(R.id.constraintLayout4); constraintLayout1.setOnClickListener(new View.OnClickListener() {//前进 @Override public void onClick(View v) { webView.goForward(); } }); webView.loadUrl("---引号内放平台生成的链接---"); //防止WebView调用系统自带的浏览器 WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setUseWideViewPort(true); webSettings.setLoadWithOverviewMode(false); webSettings.setSupportZoom(false); webSettings.setBuiltInZoomControls(true); webSettings.setDisplayZoomControls(false); webView.setWebViewClient(new WebViewClient(){ public boolean shouldOverrideUrlLoading(WebView view,String url){ view.loadUrl(url); return super.shouldOverrideUrlLoading(view,url); } }); }}
- 添加网络权限
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
AND
- 在application节点下添加
android:usesCleartextTraffic="true"
更多相关文章
- [置顶] Android(安卓)插件框架 xCombine 开发思路简介
- 【博主已解决】Android(安卓)Studio3.6/4.0|IDEA|plugins插件搜
- Android调用H5的方法.Js交互
- gradle教程 [原创](eclipse/ADT下 非插件 非Android(安卓)Studio/
- 针对 android端模拟教务系统登陆,主要针对抓包过程,post,get请求,和
- Android热修复和插件化(初识篇)
- 如何用手机访问电脑本地 localhost 网页或者服务器, 以调试web项
- Android(安卓)插件框架 xCombine 开发思路简介
- Android(安卓)插件化和热修复知识梳理