Android实战:网易新闻(附完整代码)

[内附完整源码和文档] 基于Android Studio实现的新闻APP 一、作业题目 实现一个安卓新闻类App,最低支持安卓系统版本为5.1(minSdkVersion 为API 16 https://developer.android.com/guide/topics/manifest/uses-sdk-element.html ) 二、作业描述 互联网科技的发展让新闻的传播从报纸、广播、电视等方式发展到了网页以及最近几年兴起的手机app客户端,人们获取新闻的方式变得异常容易。手机上的新闻app让大家随时随地掏出手机即可看天下事,手机新闻app不再是一个简简单单的新闻获取工具 阅读详情

一、源码地址:https://github.com/ambition-hb/News_1

二、部分内容效果图如下:

(1)广告页面

在这里插入图片描述

(2)新闻界面

在这里插入图片描述

(3)热点新闻

在这里插入图片描述

(4)热点新闻详情界面

在这里插入图片描述

(5)新闻页面栏目切换

在这里插入图片描述

(6)跟帖页面

在这里插入图片描述

三、内容详解

1、广告页面

包含Commits-1→Commits-6,详细步骤如下:

(1)创建一个工程,创建MainActivity并创建其对应的布局文件activity_main.xml,在splash.activity包下创建SplashActivity,并创建其对应的布局文件activity_splash.xml,在styles.xml文件中取消顶部的ActionBar(修改默认样式,将默认样式的父样式改为NoActionBar),在SplashActivity内设置全屏显示

(2)明确广告页面需要实现的功能:①通过OkHttp的异步方式来请求过场动画的广告数据②为了节省用户流量,我们下载广告图片到本地③实现点击广告跳转至指定的H5页面④自定义倒计时控件

(3)为应用增加网络权限,使用开源的OkHttp控件(在build.gradle中引入依赖→compile ‘com.squareup.okhttp3:okhttp:3.4.1’),并在SplashActivity中编写一个异步请求方法:httpRequest()

(4)获取到请求数据后,我们使用GSON(在build.gradle中引入依赖→compile ‘com.google.code.gson:gson:2.7’)对其进行解析,在Splash.bean包下编写Action、Ads、AdsDetail三个文件并进行对对象进行序列化操作(实现Serializable接口,将对象转化为数据流),编写json解析工具类(在util包下新建JsonUtil工具类来解析json,使用泛型来提供通用性)

(5)在util包下新建常量类Constant,存储广告页面的url与缓存文件名,解析成功数据,由于Service不能处理耗时操作,我们使用IntentService(在service包下新建DownloadImageService文件)开始下载图片,为下一次的使用做准备

(6)在下载的时候需要根据url判断图片是否下载,防止图片二次下载,浪费流量,在showImage()方法里对图片进行处理,我们使用一个MD5工具类(在util包下新建Md5Helper,使用MD5算法对传入的key进行加密并返回),将每一张图片的地址转化为名称

(7)在下载图片的过程中(在DownloadImageService的onHandleIntent()方法中),首先我们将一获取到的url生成一个bitmap,再编写saveToSD方法将它缓存到sd卡上(缓存目录采用“.xxx”是为了隐藏文件夹,防止一般用户误删除),为应用添加读写权限

(8)在Util包下编写ImageUtil工具类文件,先判断图片是否存在再判断文件内容是否完整,如果存在则不下载

(9)能够下载图片后,编写处理显示图片的逻辑,首先在util包下编写SharePrenceUtil工具类,为了考虑效率,不需要每次去调用接口,我们将接口返回的数据进行缓存,采用SharedPreference进行缓存

(10)在SplashActivity中添加getAds()方法,修改请求http的逻辑,判断是否需要http请求:①如果没有缓存,请求http②如果超时了,我们也请求http,缓存中的超时时间是小时,转化成毫秒需要6060*1000,在计算时间时,防止溢出

(11)完善广告页面的布局(activity_splash.xml),显示界面,并在SPlashActivity中编写showImage()方法,编写显示图片的逻辑:我们请求网络成功后,就会缓存接口的数据,我们需要显示的图片首先要将接口的信息读出,接着根据接口信息转化成Md5的文件名称,再根据文件名称加载图片,为了实现每次打开应用后显示图片不一样,我们实现轮播图效果,在显示图片前先去获取上次显示的图片的角标,默认是第一张,当显示成功后,我们将角标指向下一张图片,并缓存,但是这种实现容易越界,我们采用取余的方式处理越界

(12)处理完越界后,已经实现了显示图片的功能,接着为图片增加点击事件(每一个广告页面点击后会跳转到下一个activity(h5页面)),为了避免跳转到系统的浏览器,我们重写的跳转的方法,在splash.activity包下新建一个WebViewActivity并创建其对应的布局文件activity_webview.xml,设置全屏显示并处理url重定向问题(使其不要抛到系统浏览器),并且在WebViewActivity中添加onBackPressed()方法,使webview能够回退到上一个页面

(13)开始编写圆形控件,在splash包下新建TimeView类,初始化控件的画

Android开发:仿照网易新闻跟帖页面的点赞动画效果 我想看到网易新闻的点赞效果,应该都觉得很绚丽吧,我也是深深的被迷住了,刚好今天又时间,就试着自己也做了一个点赞的效果,效果图如下: 其实该效果没有什么技术含量,就是简单的animation,最花费时间的就是动画效果的编写,动画效果代码如下: <set xmlns:android="http://schemas.android.com/apk/res/android" 阅读详情

相关推荐

[Android学UI之二]实现网易新闻客户端左右滑动广告

功能:       左右滑动的广告 使用说明:       这次使用:android.support.v4.view 来实现左右滑动。 这次简单实现了网易广告左右滑动效果。欢迎大家一起来学习讨论!!! 先看图吧,有图有真相!!! 接下来看看代码: 界面Activity: package com.bbswp.netnews; import

梦想启航者 3800

安卓开发-网易新闻完整项目实战

Android支持在XML中定义动画,为应用添加平滑的过渡效果。动画主要分为两类:补间动画 Tween Animations 和框架动画 Property Animations。补间动画针对视图属性(如位置、大小、旋转、透明度)在一段时间内进行变化的动画效果。补间动画的XML文件通常放在res/anim/目录下。xml<scale<alpha</set>上述XML定义了一个缩放动画和一个淡出动画。<set>标签将多个动画组合在一起,表示动画结束后视图保持结束状态。

weixin_35755640的博客 646

高仿今日头条网易新闻客户端Android源码实战项目

Retrofit 的核心思想是通过 Java 接口来描述 HTTP 请求行为,开发者无需手动构造 URL 或拼接参数,而是利用一系列注解完成声明式定义。以获取新闻列表为例,假设后端提供如下 RESTful 接口:我们可以在项目中创建接口进行抽象:@Override.build();在生产环境中,所有网络通信必须启用 HTTPS 以防止中间人攻击(MITM)。

weixin_32535825的博客 1114

Android项目源码24小时今日资讯新闻客户端

Android项目源码24小时今日资讯新闻客户端 最新鲜的时事新闻,最时尚的手机科技,最好玩的热门游戏,还有各式各样的微博热点。 第一时间听到今日的最新资讯,24小时和你分享生活的每一分钟! 主要是模仿今日头条这样的资讯平台的。其中借鉴了一些开源框架和大神博客的代码,接口是网上的通用接口,爬一下数据就可以了。 1.android图片下载缓存库picasso的使用 2.android-async-http异步线程请求库的使用 3.android超快listview的FastScrollView框架的使用 4.目前使用的一些下拉刷新、上拉加载 5.还有一些包括自己写的json解析..抽象一些公用类之类的 [注意:本资源来自网络,如有侵权,请联系我删除,谢谢。]

Android Studio实现一个新闻APP,功能巨多,大作业必备项目

本次项目实现了一个聚合新闻APP,通过调用第三方API获得新闻数据并显示。具有十几个页面,底部导航栏,数据库,滑动页面等。主要功能就和我们平时使用的今日头条类似,具有头条、社会、国内、国际、娱乐、健康等十几个栏目。有文字有图片还有视频可以播放,全方位给用户带来视听娱乐享受,随时随地获取时事新闻。用作毕业设计都完全可以,用作大作业那绝对也是极佳。具体的演示可以参考我的对应博客,下载下来即可运行。 博客介绍:https://blog.youkuaiyun.com/qq_42257666/article/details/119977632

Android Studio项目源码---查看新闻app

该项目实现了一个可以查看新闻的系统,可以收看新闻。全名叫新闻NewsApp-master,可供学习Android Studio。安卓应用开发大作业。

Android模仿易网新闻页面源码(异步加载).zip

【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

ANDROID新闻订阅阅读器APP源码

项目: 安卓新闻阅读器 关于项目 这是一个安卓新闻阅读器应用。用户可以选择想要阅读的新闻类别。要运行该项目,你需要Android Studio。因此,在运行项目之前,请确保你的计算机上安装了Android Studio。 项目介绍 该项目适用于想通过移动应用阅读新闻的用户。用户可以选择他们想要阅读的新闻类别。当选择完类别后,你可以刷新页面以获取最新的新闻。此外,你还可以将新闻导出或导入到本地存储介质中。该应用完全响应,并且具有良好的用户界面设计。用户会发现这个应用非常适合阅读新闻文章。 如何运行项目? 为了运行该项目,请按照以下步骤操作: 安装Android Studio: 如果尚未安装,请先安装Android Studio。 更新Android Studio: 确保你的Android Studio是最新版本。 导入项目: 从Studio的主页导入项目。项目设置将自动开始,所有的Gradle构建文件将自动安装在项目根目录中。 设置虚拟设备: 打开项目,设置你的虚拟设备并运行模拟器。项目将启动,你将看到一个对话框,询问你选择新闻类别。 注意事项 整个项目是在Android Studio中开发的。项目使用Java编程语言进行字段验证,并使用XML语言进行数据传输。项目会不断提示你更新插件,因此请保持网络连接。此外,你还需要更新SDK版本以及即时运行插件。

手把手教你用闲置安卓手机+蓝鲸支付,零成本搞定个人项目自动收款(附私有化部署教程)

本文详细介绍了如何利用闲置安卓手机和蓝鲸支付系统,零成本搭建个人项目自动收款解决方案。通过私有化部署教程,读者可以学习到从手机选择、系统配置到支付渠道对接的全流程,实现安全、高效的收款系统,特别适合个人开发者和小型项目使用。

weixin_29597551的博客 335

晶圆表面缺陷检测现状概述

凹坑,凸起,尖角,沟槽),使用光束对晶圆进行照射,收集反射光和散射光信息进行缺陷判断,进一步可分为无图案晶圆表面检测和宏观缺陷检测设备。KLA使用SR-DUV光,检测精度在10nm以下。扫描电子显微(电子束和晶圆表面产生二次电子,X射线等)获取高分辨率的图像,然后用图像处理表面缺陷(凹坑,凸起,尖角,沟槽等)表面容貌和材料信息,分辨率可达5-10nm。晶圆表面缺陷检测设备主要检测晶圆外观呈现出来的缺陷,损伤、毛刺等缺陷,主要设备供应商KLA,AMAT,日立等,其中KLA在晶圆表面检测设备占有市场52%左右。

qq_36786800的博客 1万+

本地部署Llama 3中文版:Ollama量化配置与调优指南

大模型本地部署正在成为数据敏感场景下的主流选择。本地运行开源大模型,既能保护隐私又能降低调用成本,但中文能力往往成为瓶颈。以Llama 3为代表的开源模型,需借助中文微调与量化技术,才能在消费级显卡上流畅运行。量化通过压缩模型权重减小显存占用,配合Ollama等推理框架,可快速搭建私有中文AI服务。该方案适用于知识库问答、内容生成、离线助手等场景,并可通过OpenAI兼容接口无缝对接Dify等应用平台。本文从硬件选型、量化等级到Modelfile配置,系统梳理本地部署中文大模型的全链路实战方法与排错思路,帮

weixin_29035405的博客 83

Delta-Sigma调制(DSM)技术

前言 数字信号处理和通信系统的性能很大程度上受到了模拟信号到数字信号转换接口——ADC的精度和分辨率的限制。而传统的线性脉冲编码调制(PCM)ADC受到了制造工艺的限制,无法达到很高的分辨率。但基于Delta-Sigma调制技术的ADC可以在现有工艺下实现高分辨率(大于16位),同时由于结构简单,所以易于实现。低成本高性能使得Delta-Sigma调制技术得到了广泛的应用。 Delta-Sigma型ADC的结构原理图如下图所示: 它最大的优势在于仅用1位ADC进行数据转换,同时其模拟电路部分结构简单不需要

阿星的博客 2万+

使用广播星历进行 GPS 卫星位置的计算

目录1.计算卫星运动的平均角速度 n2.计算观测瞬间卫星的近地点角3.计算偏近点角4.计算真近点角 f5.计算升交角距 6.计算摄动改正项7.进行摄动改正 8.计算卫星在轨道面坐标系中的位置9.计算观测瞬间升交点的经度 L10.计算卫星在瞬时地球坐标系中的位置11.计算卫星在协议地球坐标系中的位置使用广播星历进行GPS卫星位置的计算的详细步骤如下:关于在广播星历中各参数的分布情况可以参考下图:首先根据广播星历中给出的参数 计算参考时刻(TOE) 的平均角速度 式中,GM为万有引力常数 G 与地球总质量

qq_43381998的博客 5569

DCMTK编译

dcmtk-3.6.4 使用Unicode?dcmtk的编译选项里没有关于Unicode的选项,OFString的接口里明确使用了OFString(char*)作为构造函数参数,所以,我们可以假设不能够自己擅自在CMakeList.txt里增加一行 add_definitions(-DUNICODE -D_UNICODE) 来强制使用Unicode编码。 亲测:加了之后编译不过 void...

C++ 爱好者 make_it_simple888 1734

18、社区多能源管理与点对点能源交易优化调度策略研究

本文研究了社区多能源管理与点对点(P2P)能源交易的优化调度策略,构建了适用于单一社区多个产消者的P2P交易模型,以用户生产成本最小化为目标,设计了基于ADMM算法的迭代优化方法。通过电热联合调度与能源共享机制,结合光伏、热电联产(CHP)和储能系统(ESS),实现了用户侧能源的高效利用。仿真结果表明,引入P2P交易和CHP设备显著降低了用户能源成本,提高了电力自给率和天然气利用率,减少了对主电网的依赖。研究验证了ADMM算法在分布式优化中的有效性,为未来社区能源系统的智能化管理提供了理论支持和技术路径。

git9versioner的博客 71

实战封神!YOLOv7 轻量化部署全攻略:ONNX格式转换+TensorRT极致加速(速度直接提升3-5倍,精度无损)

部署核心链路,这是YOLO系列部署的最优解,速度提升3~5倍,精度无损;ONNX是桥梁:解决模型兼容性问题,简化后能去掉冗余节点,是TensorRT加速的前提;TensorRT是核心:NVIDIA显卡的极致加速引擎,FP16量化是速度与精度的最优平衡,无需手动配置,一键开启;轻量化终极组合YOLOv7-tiny + 416尺寸 + TensorRT FP16,速度提升5~8倍,满足所有实时检测场景;避坑核心:转换参数必加,推理尺寸必须一致,engine文件显卡专属。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 308

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: Java学习手册:(数据结构与算法-排序)三路快排
下一篇: Android学习笔记:RecyclerView
浩比浩比
博客等级 码龄12年 395粉丝 202原创
评论 14
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值