android:clickable=“true”
android:padding=“@dimen/dp_12”>
<androidx.core.widget.NestedScrollView
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:background=“@drawable/shape_transparent_12”
android:overScrollMode=“never”>
<LinearLayout
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:gravity=“center_horizontal”
android:orientation=“vertical”
android:padding=“@dimen/dp_4”>
<LinearLayout
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:gravity=“center”
android:orientation=“vertical”
android:paddingTop=“@dimen/dp_12”
android:paddingBottom=“@dimen/dp_12”>
<TextView
android:id=“@+id/tv_date_info”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:textColor=“@color/white”
android:textSize=“@dimen/sp_18” />
<TextView
android:id=“@+id/tv_date”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:textColor=“@color/white”
android:textSize=“@dimen/sp_14” />
<LinearLayout
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:gravity=“center_horizontal”
android:orientation=“horizontal”>
<TextView
android:id=“@+id/tv_temp_max”
android:typeface=“sans”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:text=“最高温”
android:textColor=“@color/white”
android:textSize=“@dimen/sp_36” />
<TextView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:text=" / "
android:textColor=“@color/white”
android:textSize=“@dimen/sp_18” />
<TextView
android:id=“@+id/tv_temp_min”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:text=“最高温”
android:textColor=“@color/white”
android:textSize=“@dimen/sp_18” />
<View
android:layout_width=“match_parent”
android:layout_height=“0.3dp”
android:layout_margin=“@dimen/dp_12”
android:background=“@color/white” />
<TextView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:padding=“@dimen/dp_8”
android:text=“白天天气状况”
android:textColor=“@color/white”
android:textSize=“@dimen/sp_16” />
<LinearLayout
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:gravity=“center”
android:orientation=“vertical”>
<LinearLayout
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”>
<ImageView
android:id=“@+id/iv_weather_state_d”
android:layout_width=“@dimen/dp_80”
android:layout_height=“@dimen/dp_80”
android:scaleType=“fitXY” />
<TextView
android:id=“@+id/tv_weather_state_d”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:layout_marginLeft=“@dimen/dp_8”
android:gravity=“center”
android:textColor=“@color/white”
android:textSize=“@dimen/sp_16” />
<LinearLayout
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:orientation=“vertical”>
<LinearLayout
android:layout_width=“match_parent”
android:layout_height=“wrap_content”>
<LinearLayout
android:layout_width=“@dimen/dp_0”
android:layout_height=“wrap_content”
android:layout_weight=“1”
android:gravity=“center_vertical”
android:paddingLeft=“@dimen/dp_12”
android:paddingRight=“@dimen/dp_12”>
<ImageView
android:layout_width=“@dimen/dp_24”
android:layout_height=“@dimen/dp_24”
android:src=“@mipmap/icon_wind_360” />
<TextView
android:id=“@+id/tv_wind_360_d”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:layout_marginLeft=“@dimen/dp_20”
android:textColor=“@color/white”
android:textSize=“@dimen/sp_12” />
<LinearLayout
android:layout_width=“@dimen/dp_0”
android:layout_height=“wrap_content”
android:layout_weight=“1”
android:gravity=“center_vertical”
android:paddingLeft=“@dimen/dp_12”
android:paddingRight=“@dimen/dp_12”>
<ImageView
android:layout_width=“@dimen/dp_24”
android:layout_height=“@dimen/dp_24”
android:src=“@mipmap/icon_wind_dir” />
<TextView
android:id=“@+id/tv_wind_dir_d”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:layout_marginLeft=“@dimen/dp_20”
android:textColor=“@color/white”
android:textSize=“@dimen/sp_12” />
<LinearLayout
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:layout_marginTop=“@dimen/dp_12”>
<LinearLayout
android:layout_width=“@dimen/dp_0”
android:layout_height=“wrap_content”
android:layout_weight=“1”
android:gravity=“center_vertical”
android:paddingLeft=“@dimen/dp_12”
android:paddingRight=“@dimen/dp_12”>
<ImageView
android:layout_width=“@dimen/dp_24”
android:layout_height=“@dimen/dp_24”
android:padding=“@dimen/dp_2”
android:src=“@mipmap/icon_wind_scale” />
<TextView
android:id=“@+id/tv_wind_scale_d”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:layout_marginLeft=“@dimen/dp_20”
android:textColor=“@color/white”
android:textSize=“@dimen/sp_12” />
<LinearLayout
android:layout_width=“@dimen/dp_0”
android:layout_height=“wrap_content”
android:layout_weight=“1”
android:gravity=“center_vertical”
android:paddingLeft=“@dimen/dp_12”
android:paddingRight=“@dimen/dp_12”>
<ImageView
android:layout_width=“@dimen/dp_24”
android:layout_height=“@dimen/dp_24”
android:src=“@mipmap/icon_wind_speed” />
<TextView
android:id=“@+id/tv_wind_speed_d”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:layout_marginLeft=“@dimen/dp_20”
android:textColor=“@color/white”
android:textSize=“@dimen/sp_12” />
<View
android:layout_width=“match_parent”
android:layout_height=“0.3dp”
android:layout_margin=“@dimen/dp_12”
android:background=“@color/white” />
<TextView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:padding=“@dimen/dp_8”
android:text=“夜间天气状况”
android:textColor=“@color/white”
android:textSize=“@dimen/sp_16” />
<LinearLayout
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:gravity=“center”
android:orientation=“vertical”>
<LinearLayout
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”>
<ImageView
android:id=“@+id/iv_weather_state_n”
android:layout_width=“@dimen/dp_80”
android:layout_height=“@dimen/dp_80”
android:scaleType=“fitXY” />
<TextView
android:id=“@+id/tv_weather_state_n”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:layout_marginLeft=“@dimen/dp_8”
android:gravity=“center”
android:textColor=“@color/white”
android:textSize=“@dimen/sp_16” />
<LinearLayout
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:orientation=“vertical”>
<LinearLayout
android:layout_width=“match_parent”
android:layout_height=“wrap_content”>
<LinearLayout
android:layout_width=“@dimen/dp_0”
android:layout_height=“wrap_content”
android:layout_weight=“1”
android:gravity=“center_vertical”
android:paddingLeft=“@dimen/dp_12”
android:paddingRight=“@dimen/dp_12”>
<ImageView
android:layout_width=“@dimen/dp_24”
android:layout_height=“@dimen/dp_24”
android:src=“@mipmap/icon_wind_360” />
<TextView
android:id=“@+id/tv_wind_360_n”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:layout_marginLeft=“@dimen/dp_20”
android:textColor=“@color/white”
android:textSize=“@dimen/sp_12” />
<LinearLayout
android:layout_width=“@dimen/dp_0”
android:layout_height=“wrap_content”
android:layout_weight=“1”
android:gravity=“center_vertical”
android:paddingLeft=“@dimen/dp_12”
android:paddingRight=“@dimen/dp_12”>
<ImageView
android:layout_width=“@dimen/dp_24”
android:layout_height=“@dimen/dp_24”
android:src=“@mipmap/icon_wind_dir” />
<TextView
android:id=“@+id/tv_wind_dir_n”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:layout_marginLeft=“@dimen/dp_20”
android:textColor=“@color/white”
android:textSize=“@dimen/sp_12” />
<LinearLayout
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:layout_marginTop=“@dimen/dp_12”>
<LinearLayout
android:layout_width=“@dimen/dp_0”
android:layout_height=“wrap_content”
android:layout_weight=“1”
android:gravity=“center_vertical”
android:paddingLeft=“@dimen/dp_12”
android:paddingRight=“@dimen/dp_12”>
<ImageView
android:layout_width=“@dimen/dp_24”
android:layout_height=“@dimen/dp_24”
android:padding=“@dimen/dp_2”
android:src=“@mipmap/icon_wind_scale” />
<TextView
android:id=“@+id/tv_wind_scale_n”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:layout_marginLeft=“@dimen/dp_20”
android:textColor=“@color/white”
android:textSize=“@dimen/sp_12” />
<LinearLayout
android:layout_width=“@dimen/dp_0”
android:layout_height=“wrap_content”
android:layout_weight=“1”
android:gravity=“center_vertical”
android:paddingLeft=“@dimen/dp_12”
android:paddingRight=“@dimen/dp_12”>
<ImageView
android:layout_width=“@dimen/dp_24”
android:layout_height=“@dimen/dp_24”
android:src=“@mipmap/icon_wind_speed” />
<TextView
android:id=“@+id/tv_wind_speed_n”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:layout_marginLeft=“@dimen/dp_20”
android:textColor=“@color/white”
android:textSize=“@dimen/sp_12” />
<View
android:layout_width=“match_parent”
android:layout_height=“0.3dp”
android:layout_margin=“@dimen/dp_12”
android:background=“@color/white” />
<LinearLayout
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:orientation=“vertical”
android:padding=“@dimen/dp_12”>
<LinearLayout
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:gravity=“center_vertical”>
<TextView
android:layout_width=“@dimen/dp_80”
android:layout_height=“wrap_content”
android:gravity=“center_vertical”
android:text=“云量”
android:textColor=“@color/white” />
<ImageView
android:layout_width=“@dimen/dp_20”
android:layout_height=“@dimen/dp_20”
android:src=“@mipmap/icon_cloud” />
<TextView
android:id=“@+id/tv_cloud”
android:layout_width=“@dimen/dp_0”
android:layout_height=“wrap_content”
android:layout_weight=“1”
android:gravity=“center”
android:textColor=“@color/white” />
<LinearLayout
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:layout_marginTop=“@dimen/dp_4”
android:gravity=“center_vertical”>
<TextView
android:layout_width=“@dimen/dp_80”
android:layout_height=“wrap_content”
android:gravity=“center_vertical”
android:text=“紫外线”
android:textColor=“@color/white” />
<ImageView
android:layout_width=“@dimen/dp_20”
android:layout_height=“@dimen/dp_20”
android:src=“@mipmap/icon_uv_index” />
<TextView
android:id=“@+id/tv_uvIndex”
android:layout_width=“@dimen/dp_0”
android:layout_height=“wrap_content”
android:layout_weight=“1”
android:gravity=“center”
android:textColor=“@color/white” />
<LinearLayout
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:layout_marginTop=“@dimen/dp_4”
android:gravity=“center_vertical”>
<TextView
android:layout_width=“@dimen/dp_80”
android:layout_height=“20dp”
android:gravity=“center_vertical”
android:text=“能见度”
android:textColor=“@color/white” />
<ImageView
android:layout_width=“@dimen/dp_20”
android:layout_height=“@dimen/dp_20”
android:src=“@mipmap/icon_vis” />
<TextView
android:id=“@+id/tv_vis”
android:layout_width=“@dimen/dp_0”
android:layout_height=“wrap_content”
android:layout_weight=“1”
android:gravity=“center”
android:textColor=“@color/white” />
<LinearLayout
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:layout_marginTop=“@dimen/dp_4”
android:gravity=“center_vertical”>
<TextView
android:layout_width=“@dimen/dp_80”
android:layout_height=“wrap_content”
android:gravity=“center_vertical”
android:text=“降水量”
android:textColor=“@color/white” />
<ImageView
android:layout_width=“@dimen/dp_20”
android:layout_height=“@dimen/dp_20”
android:src=“@mipmap/icon_precip” />
<TextView
android:id=“@+id/tv_precip”
android:layout_width=“@dimen/dp_0”
android:layout_height=“wrap_content”
android:layout_weight=“1”
android:gravity=“center”
android:textColor=“@color/white” />
<LinearLayout
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:layout_marginTop=“@dimen/dp_4”
android:gravity=“center_vertical”>
<TextView
android:layout_width=“@dimen/dp_80”
android:layout_height=“wrap_content”
android:gravity=“center_vertical”
android:text=“相对湿度”
android:textColor=“@color/white” />
<ImageView
android:layout_width=“@dimen/dp_20”
android:layout_height=“@dimen/dp_20”
android:src=“@mipmap/icon_humidity” />
<TextView
android:id=“@+id/tv_humidity”
android:layout_width=“@dimen/dp_0”
android:layout_height=“wrap_content”
android:layout_weight=“1”
android:gravity=“center”
android:textColor=“@color/white” />
<LinearLayout
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:layout_marginTop=“@dimen/dp_4”
android:gravity=“center_vertical”>
<TextView
android:layout_width=“@dimen/dp_80”
android:layout_height=“wrap_content”
android:gravity=“center_vertical”
android:text=“大气压强”
android:textColor=“@color/white” />
<ImageView
android:layout_width=“@dimen/dp_20”
android:layout_height=“@dimen/dp_20”
android:src=“@mipmap/icon_pressure” />
<TextView
android:id=“@+id/tv_pressure”
android:layout_width=“@dimen/dp_0”
android:layout_height=“wrap_content”
android:layout_weight=“1”
android:gravity=“center”
android:textColor=“@color/white” />
</androidx.core.widget.NestedScrollView>
最终效果图如下
下面在app的adapter包下新建一个MoreDailyAdapter,
代码如下:
package com.llw.goodweather.adapter;
import androidx.annotation.Nullable;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.llw.goodweather.R;
import com.llw.goodweather.bean.DailyResponse;
import com.llw.goodweather.utils.DateUtils;
import com.llw.goodweather.utils.WeatherUtil;
import java.util.List;
/**
- 更多天气预报信息数据适配器
*/
public class MoreDailyAdapter extends BaseQuickAdapter<DailyResponse.DailyBean, BaseViewHolder> {
public MoreDailyAdapter(int layoutResId, @Nullable List<DailyResponse.DailyBean> data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, DailyResponse.DailyBean item) {
helper.setText(R.id.tv_temp_max,item.getTempMax()+“°”)
.setText(R.id.tv_temp_min,item.getTempMin()+“°”);
helper.setText(R.id.tv_date_info, DateUtils.Week(item.getFxDate()))//日期描述
.setText(R.id.tv_date, DateUtils.dateSplit(item.getFxDate()))//日期
.setText(R.id.tv_weather_state_d, item.getTextDay())//白天天气状况文字描述
.setText(R.id.tv_weather_state_n, item.getTextNight());//晚间天气状况文字描述
helper.setText(R.id.tv_wind_360_d, item.getWind360Day() + “°”)
.setText(R.id.tv_wind_dir_d, item.getWindDirDay())
.setText(R.id.tv_wind_scale_d, item.getWindScaleDay() + “级”)
.setText(R.id.tv_wind_speed_d, item.getWindSpeedDay() + “km/h”);
helper.setText(R.id.tv_wind_360_n, item.getWind360Night() + “°”)
.setText(R.id.tv_wind_dir_n, item.getWindDirNight())
.setText(R.id.tv_wind_scale_n, item.getWindScaleNight() + “级”)
.setText(R.id.tv_wind_speed_n, item.getWindSpeedNight() + “km/h”);
helper.setText(R.id.tv_cloud, item.getCloud() + “%”)//云量
.setText(R.id.tv_uvIndex, uvIndexToString(item.getUvIndex()))//紫外线
.setText(R.id.tv_vis, item.getVis() + “km”)//能见度
.setText(R.id.tv_precip, item.getPrecip() + “mm”)//降水量
.setText(R.id.tv_humidity, item.getHumidity() + “%”)//相对湿度
.setText(R.id.tv_pressure, item.getPressure() + “hPa”)//大气压强
;
//白天天气状态图片描述
WeatherUtil.changeIcon(helper.getView(R.id.iv_weather_state_d), Integer.parseInt(item.getIconDay()));
//晚上天气状态图片描述
WeatherUtil.changeIcon(helper.getView(R.id.iv_weather_state_n), Integer.parseInt(item.getIconNight()));
}
private String uvIndexToString(String code) {//最弱(1)、弱(2)、中等(3)、强(4)、很强(5)
String result = null;
switch (code) {
case “1”:
result = “最弱”;
break;
case “2”:
result = “弱”;
break;
case “3”:
result = “中等”;
break;
case “4”:
result = “强”;
break;
case “5”:
result = “很强”;
break;
default:
result = “无紫外线”;
break;
}
return result;
}
}
这是你会发现少了一个dateSplit方法,去DateUtils里面补上
//时间截取
public static String dateSplit(String date) {//2020-08-04
String result = null;
String[] array = date.split(“-”);
result = array[1] + “/” + array[2];
return result; //08/04
}
//时间截取plus
public static String dateSplitPlus(String date) {//2020-08-07
String result = null;
String[] array = date.split(“-”);
result = Integer.parseInt(array[1]) + “月” + Integer.parseInt(array[2]) + “号”;
return result; // 8月7号
}
区别不大,不过都会用到的。Ok,现在Adapter没有问题了,就可以去写订阅器了。
在app的contract包新建一个MoreDailyContract,代码如下:
package com.llw.goodweather.contract;
import com.llw.goodweather.api.ApiService;
import com.llw.goodweather.bean.DailyResponse;
import com.llw.goodweather.bean.WorldCityResponse;
import com.llw.mvplibrary.base.BasePresenter;
import com.llw.mvplibrary.base.BaseView;
import com.llw.mvplibrary.net.NetCallBack;
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
最后
针对于上面的问题,我总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料。
(包括Java在Android开发中应用、APP框架知识体系、高级UI、全方位性能调优,NDK开发,音视频技术,人工智能技术,跨平台技术等技术资料),希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。
import com.llw.goodweather.api.ApiService;
import com.llw.goodweather.bean.DailyResponse;
import com.llw.goodweather.bean.WorldCityResponse;
import com.llw.mvplibrary.base.BasePresenter;
import com.llw.mvplibrary.base.BaseView;
import com.llw.mvplibrary.net.NetCallBack;
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-D8f0iMvH-1711913160669)]
[外链图片转存中…(img-SO7aaG3L-1711913160670)]
[外链图片转存中…(img-j0FzXTmS-1711913160670)]
[外链图片转存中…(img-GZkbh3rZ-1711913160671)]
[外链图片转存中…(img-X6AaonaB-1711913160671)]
[外链图片转存中…(img-Jj0ZIKvZ-1711913160671)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
[外链图片转存中…(img-s0irwm6j-1711913160672)]
最后
针对于上面的问题,我总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料。
(包括Java在Android开发中应用、APP框架知识体系、高级UI、全方位性能调优,NDK开发,音视频技术,人工智能技术,跨平台技术等技术资料),希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。
[外链图片转存中…(img-0RyoOgG6-1711913160672)]文章来源:https://www.toymoban.com/news/detail-848965.html
本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录文章来源地址https://www.toymoban.com/news/detail-848965.html
到了这里,关于Android 天气APP(二十一)滑动改变UI(1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!