Android(仿QQ登入+网易新闻)

文章目录

  • 场景
  • 内容:
  • 效果
  • 参考

场景

提示:基于期末作业开发+(自增轮播图)
在这里插入图片描述
自评:效果蛮丑的,功能都在,仅供参考!


内容:

一,引导页
1,设计引导页LogoActivity,添加引导页所需图片和引导圆点设计
//引导页面至少三张图片

public class LogoActivity extends AppCompatActivity {private List<ImageView> image_points;private LogoAdapter logoAdapter;private List<Integer> imageIds;private ViewPager vp_logo;private boolean isLastPage;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
//       @SuppressLint("ResourceType") View login = findViewById(R.layout.activity_login);setContentView(R.layout.activity_logo);vp_logo = findViewById(R.id.vp_logo);imageIds = new ArrayList<>();imageIds.add(R.drawable.logo1);imageIds.add(R.drawable.logo2);imageIds.add(R.drawable.logo3);imageIds.add(R.drawable.logo4);logoAdapter = new LogoAdapter(imageIds, this);vp_logo.setAdapter(logoAdapter);image_points = new ArrayList<>();LinearLayout ll_points = findViewById(R.id.ll_points);for (int i = 0; i < imageIds.size(); i++) {ImageView imageView = new ImageView(this);imageView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT));imageView.setImageResource(R.drawable.point_blue);final int finalI = i;imageView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {vp_logo.setCurrentItem(finalI);}});image_points.add(imageView);ll_points.addView(imageView);}private void setPoint(int position) {for (int i = 0; i < image_points.size(); i++) {if (i == position) {image_points.get(i).setImageResource(R.drawable.point_blue);} else {image_points.get(i).setImageResource(R.drawable.point_pink);}}}
}

2,同时设计引导页面图片适配容器,item_logo布局

public class LogoAdapter extends PagerAdapter {List<Integer> imageIds ;Context ctx;public LogoAdapter(List<Integer> imageIds, Context ctx){this.imageIds = imageIds;this.ctx = ctx;}@NonNull@Overridepublic Object instantiateItem(@NonNull ViewGroup container, int position){ImageView imageView = (ImageView) LayoutInflater.from(ctx).inflate(R.layout.item_logo,container, false);imageView.setImageResource(imageIds.get(position));container.addView(imageView);return imageView;}@Overridepublic void destroyItem(@NonNull ViewGroup container,int position,@NonNull Object object){container.removeView((View) object);}@Overridepublic int getCount() {return imageIds.size();}@Overridepublic boolean isViewFromObject(@NonNull View view, @NonNull Object object) {return view == object;}
}
<?xml version="1.0" encoding="utf-8"?>
<ImageViewxmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"android:layout_height="match_parent"></ImageView>
3,在LogoActivity设计结束跳转登入页面vp_logo.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {@Overridepublic void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {setPoint(position);}@Overridepublic void onPageSelected(int position) {setPoint(position);isLastPage = position == imageIds.size() - 1;}@Overridepublic void onPageScrollStateChanged(int state) {if (isLastPage) {goLoginActivity();}}});setPoint(0);
}public void goLoginActivity() {startActivity(new Intent(this, LoginActivity.class));finish();
}

效果图:
在这里插入图片描述

二,登入界面
1,生成登入,LoginDataSource修改登入信息和样式

public class LoginDataSource {public Result<LoggedInUser> login(String username, String password) {try {// TODO: handle loggedInUser authenticationif(username.equals("郭淑瑛")&&password.equals("123")){LoggedInUser fakeUser =new LoggedInUser(java.util.UUID.randomUUID().toString(),username+"Doe");return new Result.Success<>(fakeUser);}else {return new Result.Error(new IOException("账号密码错误!"));}} catch (Exception e) {return new Result.Error(new IOException("Error logging in", e));}}public void logout() {// TODO: revoke authentication}
}

2,在LoginActivity加登入成功跳转事件,跳转到主页面

startActivity(new Intent(LoginActivity.this, MainActivity.class));

效果图:
在这里插入图片描述

三,主页面显示新闻列表
1,item_news_normal.xml规范列表样式部署item_news_tv_title,item_news_tv_time,item_news_tv_img

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:background="@color/palegoldenrod"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><LinearLayoutandroid:id="@+id/item_news_linearlayout"android:layout_width="fill_parent"android:layout_height="@dimen/item_news_height"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:layout_marginTop="10dp"android:orientation="horizontal"android:visibility="visible"><TextViewandroid:id="@+id/item_news_tv_title"android:layout_width="fill_parent"android:layout_height="fill_parent"android:gravity="center_vertical"android:layout_marginLeft="8dp"android:layout_marginRight="8dp"android:layout_weight="1"android:ellipsize="end"android:maxLines="4"android:text="@string/default_text"android:textColor="@color/black"/><ImageViewandroid:id="@+id/item_news_tv_img"android:layout_width="fill_parent"android:layout_height="90dp"android:layout_weight="2"android:scaleType="fitXY"android:src="@mipmap/ic_launcher_round"/></LinearLayout><RelativeLayoutandroid:layout_width="fill_parent"android:layout_height="25dp"android:layout_marginBottom="10dp"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"><TextViewandroid:id="@+id/item_news_tv_time"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerVertical="true"android:layout_marginLeft="5dp"android:text="10 minutes ago"android:textColor="@color/darkgray"android:textSize="12sp"/><TextViewandroid:id="@+id/item_news_tv_arrow"android:layout_width="3dp"android:layout_height="20dp"android:layout_alignParentRight="true"android:layout_centerVertical="true"android:background="@color/darkgray" /><TextViewandroid:id="@+id/item_news_tv_source"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_centerVertical="true"android:layout_marginBottom="10dp"android:layout_marginRight="10dp"android:layout_toLeftOf="@id/item_news_tv_arrow"android:text="@string/source_news_text"android:textColor="@color/darkgray"android:textSize="12sp"/></RelativeLayout>
</LinearLayout>

2,创建新闻容器NewsBean,和NewsHttp get json数据和解析所需数据标题等

private List<NewsBean> jsonNews(String json) {List<NewsBean> newsBeans = null;try {JSONObject jsonObject = new JSONObject(json);JSONArray jsonArray = jsonObject.getJSONArray("T1348647853363");newsBeans = new ArrayList<>();for (int i = 0; i < jsonArray.length(); i++) {JSONObject object = jsonArray.getJSONObject(i);String title = object.getString("title");String imgSrc = object.getString("imgsrc");String time = object.getString("mtime");NewsBean newsBean = new NewsBean(title, imgSrc, time);newsBeans.add(newsBean);}} catch (JSONException e) {e.printStackTrace();}return newsBeans;

3,在MainActivity调用使用

public View getView(int i, View view, ViewGroup viewGroup) {if (view == null) {view = LayoutInflater.from(MainActivity.this).inflate(R.layout.item_news_normal, viewGroup, false);}TextView tv_title = view.findViewById(R.id.item_news_tv_title);TextView tv_time = view.findViewById(R.id.item_news_tv_time);ImageView iv_img = view.findViewById(R.id.item_news_tv_img);tv_title.setText(getItem(i).getTitle());tv_time.setText(getItem(i).getTime());Glide.with(MainActivity.this).load(getItem(i).imgSrc).into(iv_img);return view;
}public void add(List<NewsBean> newsBeans) {MainActivity.this.newsBeans.clear();MainActivity.this.newsBeans.addAll(newsBeans);notifyDataSetChanged();
}

效果图:
在这里插入图片描述
四,轮播图
查看参考,是直接采用的方法


效果

不好意思,不会做动图
完整代码链接

完整讲解加代码和效果视频:查看资源


参考

(87条消息) Android开发-Android应用中启动时引导页的实现__彼岸雨敲窗_的博客-CSDN博客_android 引导页实现

(117条消息) Android Studio 出现“Cannot resolve symbol” 解决办法_极客神殿-CSDN博客_cannot resolve symbol

(144条消息) Android使用banner实现自动手动轮播图_李小白的博客的博客-CSDN博客_android banner自动轮播

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/60585.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

运维有趣项目:搭建个人博客安全版(Appache2.4防盗链与防泄漏,防盗链httpd.conf无Load,include版)

这次算是呕心沥血了,网上的防盗链文章简直一个模子的,全部都是采用httpd.conf修改LoadModule rewrite_module modules/mod_rewrite.so或是httpd-default.conf,可是我用阿里云自动搭建的apache环境压根就没有啊,如果有相同经历的,可以看这篇文章,希望留下评论,给个鼓励不,QAQ,域…

chatgpt赋能python:Python打包成手机可执行文件指南

Python 打包成手机可执行文件指南 作为一名有着10年Python编程经验的工程师&#xff0c;我认为将Python打包成手机可执行文件是一项非常有用的技能。在这篇文章中&#xff0c;我将介绍Python打包成手机可执行文件的重要性&#xff0c;以及如何使用PyInstaller工具轻松打包Pyth…

优酷“首月1元”会员引争议:取消续费却被扣24元;马斯克欲在推特建立支付系统,并包含加密货币功能;Deno 1.3发布|极客头条...

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&#…

chatgpt赋能python:Python多个%d在SEO中的应用

Python多个%d在SEO中的应用 在当今的互联网时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;已经成为了每个网站的重要任务之一。而在Python编程中&#xff0c;有一个非常常见的占位符%d&#xff0c;用来替代一个整数。在本文中&#xff0c;我们将介绍Python中多个%d…

38年来,NBA最有价值球员|数据分析

使用工具:Ipython notebook/Anacoda-Spyder 使用的库:Pandas,Matplotlib,Seaborn Python版本:Py3.6 1 数据来源 1).本次用到的数据 来源于https://www.basketball-reference.com/awards/mvp.html,其中可以选择多种形式,我选的是CSV格式,方便后面的数据分析,(文末会分享…

kaggle:谁是NBA最佳防守球员?(二)

接着前几天发的关于kaggle中NBA球员投篮数据探索性数据分析和可视化分析之后&#xff0c;小编本打算对这13万的投篮数据跑几个机器学习模型预测一下投篮的&#xff0c;可是电脑内存不给力&#xff0c;试了几次之后便作罢了。还打算第一次试一下kaggle上被传的神乎其技的大杀器x…

篮球中各个位置的名称及介绍…

正规篮球比赛是5对5&#xff0c;赛场上分布着五个篮球位置&#xff0c;分别是&#xff1a;中锋&#xff08;C&#xff09;、大前锋&#xff08;PF&#xff09;、小前锋&#xff08;SF&#xff09;、得分后卫&#xff08;SG&#xff09;、控球后卫&#xff08;PG&#xff09; 来…

几行代码,GPT-3变ChatGPT!吴恩达高徒、华人CEO震撼发布Lamini引擎

点击下方卡片&#xff0c;关注“CVer”公众号 AI/CV重磅干货&#xff0c;第一时间送达 点击进入—>【计算机视觉】微信技术交流群 转载自&#xff1a;新智元 | 编辑&#xff1a;Aeneas 好困 【导读】这个全新发布的Lamini引擎&#xff0c;大大拉低了模型训练的门槛&#xff…

抖音小店无货源是怎么做的?开店需要我们准备什么?经验分享

大家好&#xff0c;我是电商糖果 无货源模式流行于14-15年&#xff0c;最早是在某宝、某东、多多这些平台 目前抖音小店无货源的情况&#xff1a; 抖音小店和其他传统电商平台不一样&#xff0c;抖音小店起店是很快的&#xff0c;基本上5-20天小店就可以稳定出单了。 现在直…

抖音小店开通后为什么不出单?新店一定要看看是不是这三个方面没做好

大家好&#xff0c;我是电商年年 想要做好抖音小店&#xff0c;找对方法很重要。很多人的抖音小店开通后迟迟不出单&#xff0c;其实主要有三个原因。 选品为王 做电商&#xff0c;产品才是第一位&#xff0c;其他都要往后靠。选品首先要确定类目&#xff0c;之前很多人都在…

关于抖音小店无货源,作为过来人,来给你推荐几个好做的类目

Hello这里是六一&#xff0c;一个在无货源模式下闯荡多年的电商人。 好的类目对于操作无货源来说也是一个关键点&#xff0c;类目选的没问题&#xff0c;那起点就比别人高&#xff0c;做起来容易得多。 上边在讲营业执照问题的时候建议新手把全类目都开通&#xff0c;但是在做…

抖音小店无货源怎么做?具体步骤讲解,经验分享

哈喽&#xff0c;大家好&#xff0c;我是布丁。 废话不多说&#xff0c;直接上干货。 抖音小店无货源是什么&#xff1f; 抖音小店就是在抖音上开一家小店&#xff0c;抖音小店是一个电商平台&#xff0c;无货源是一种操作模式。 无货源模式就是在网上采集其他店铺的商品&a…

抖音橱窗or抖音小店?这3点,新手开店必看!

不会吧不会吧&#xff0c;都2023了还有人分不清抖音橱窗和小店的区别&#xff1f;今天小编就带你了解一下&#xff0c;不再掉大坑。 1、性质不同 商品橱窗 它只是展示商品的一个窗口&#xff0c;是抖音的一个电商功能&#xff0c;主要通过短视频或者直播的形式推广商品&…

抖音小店商品卡访客七天新增1w+ 2023无货源起店方法,重点必看

2023年最新的起店玩法&#xff0c;不用动销就能起店&#xff0c;七天商品卡访客就能到1万&#xff1a; 我们新开的好几个店铺都是这样做起来的&#xff0c;其中有两个核心&#xff0c;一定要认真看完。 第一步&#xff1a;低价引流款拉流量 店铺开好以后&#xff0c;第一天上…

想做抖音小店无货源还在全网找教程?这里有你最需要的开店教程

大家好&#xff0c;我是电商糖果 最近随着互联网的快速发展&#xff0c;电商也在顺应时代的变化开始有了新的发展模式 抖音小店无货源&#xff0c;一家做短视频的平台却把电商做得风生水起&#xff0c;在双十一&#xff0c;双十二&#xff0c;年货节屡屡出圈。 抖音平台这个…

​分享|Tiktok小店入驻如何选择​

最近有很多小伙伴问“TikTok普通商家与定邀商家有什么不同&#xff1f;现在入驻应该如何选择&#xff1f;”想必各位还在观望的卖家都听到过TikTok小店有分定向邀约&#xff08;简称“定邀”&#xff09;和普通入驻&#xff08;简称“普招”&#xff09;的通道&#xff0c;那么…

抖音商城店铺分享链接自动化

一、制作背景 目前抖音商城店铺商品分享只能手动分享 如果分享的店铺数量较大就费时又费力&#xff0c; 二、解决问题 人工分享链接数量较大就费时费力不利于提升效率 完全可以让脚本自动滚动采集抖音店铺分享链接解放双手。 三、运行环境 手机和各种模拟器 步骤一 用户手动打…

必看,抖音小店无货源模式到底该怎么做?

大家好&#xff0c;我是电商年年 不得不说抖音小店现在是真的火&#xff0c;尤其是抖音小店无货源模式&#xff0c;这种模式风险低、投入低、不用进货、囤货、发货&#xff0c;只需要利用商品的信息差赚取差价。操作也很简单&#xff0c;只需要会简单的电脑操作就可以进行了。…

抖音小店运营全套系列课,系统掌握月销100w+小店的核心秘密

抖音小店运营全套系列课&#xff0c;系统掌握月销100w小店的核心秘密 从小店基础入门到进阶精通&#xff0c;全新升级 兴趣电商搜索电商 双剑合璧 1、目前抖音日活跃量用户已经突破6亿&#xff0c;平台用户规模庞大且拥有消费能力&#xff0c;管是个人、商家还是企业都可以…

ChatGPT付费创作系统V2.1.1独立版 +WEB端+ H5端 + 小程序端+文心一言+私有知识库

ChatGPT付费创作系统V2.1.1提供最❤的对应版本小程序端&#xff0c;相比上一版本增加了私有知识库功能&#xff0c;可绑定至角色&#xff0c;当回答无答案时会调用出私有知识库答案。本版新增了小程序端。绘画功能采用其他绘画接口-意间AI&#xff0c;后台一些小细节的优化及一…