android学习:模拟微博看看界面
这几天学会了ListView组件,这个组件真的很有用。希望在今后的开发中能大量用到。
通过ListView的学习,模拟了新浪微博的随便看看页面。
要实现的效果:
代码如下:
- <span style="font-family:Comic Sans MS;font-size:12px;"><?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/liner"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:padding="6dip"
- android:background="#CD4F39">
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="新浪微博-随便看看"
- android:textSize="15sp"
- android:textColor="@android:color/white"
- />
- </LinearLayout>
- <com.bzu.edu.gxs.view.MyListView
- android:id="@+id/myListView1"
- android:layout_width="match_parent"
- android:layout_height="wrap_content" >
- </com.bzu.edu.gxs.view.MyListView>
- </LinearLayout></span>
layout_view.xml
代码如下:
- <span style="font-family:Comic Sans MS;font-size:12px;"><?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:padding="10dip"
- android:orientation="vertical" >
- <RelativeLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- >
- <ImageView
- android:id="@+id/head_img"
- android:src="@drawable/p1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="5dip"
- android:layout_alignParentLeft="true"
- />
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_toRightOf="@+id/head_img"
- android:layout_marginLeft="7dip"
- android:orientation="vertical">
- <RelativeLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content">
- <TextView
- android:id="@+id/name"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentLeft="true"
- android:textColor="#242424"
- android:textSize="14sp"
- android:typeface="sans"
- android:textStyle="bold"
- android:text="@string/gxs"/>
- <TextView
- android:id="@+id/time"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_toRightOf="@id/name"
- android:layout_alignBottom="@id/name"
- android:layout_marginLeft="5dip"
- android:textColor="#FFFFFF"
- android:textSize="12sp"
- android:text=""/>
- <TextView
- android:id="@+id/rq"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentRight="true"
- android:layout_centerVertical="true"
- android:textSize="13sp"
- android:text="1分钟前"/>
- </RelativeLayout>
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="5dip">
- <TextView
- android:id="@+id/article"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:minHeight="50px"
- android:textSize="12sp"
- android:text="gxs"/>
- </LinearLayout>
- </LinearLayout>
- </RelativeLayout>
- </LinearLayout>
- </span>
5.java代码
MainActivity.java
- <span style="font-family:Comic Sans MS;font-size:12px;">package com.bzu.gxs;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- import java.util.Random;
- import com.bzu.edu.gxs.adapter.ArticleAdapter;
- import com.bzu.edu.gxs.adapter.Messages;
- import com.bzu.edu.gxs.view.MyListView;
- import com.bzu.gxs.*;
- import android.R.integer;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.Message;
- import android.app.Activity;
- import android.content.res.TypedArray;
- import android.view.Menu;
- import android.view.Window;
- import android.widget.ArrayAdapter;
- import android.widget.BaseAdapter;
- import android.widget.LinearLayout;
- public class MainActivity extends Activity {
- private MyListView mylistview=null;
- private List<Messages> list_msg=null;
- private BaseAdapter adapter=null;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- requestWindowFeature(Window.FEATURE_NO_TITLE);
- setContentView(R.layout.activity_main);
- init();
- if(list_msg==null){
- getData();
- }
- adapter=new ArticleAdapter(this,list_msg);
- //设置监听器
- mylistview.setOnRershListener(new OnRershListener());
- mylistview.setAdapter(adapter);
- }
- private void getData() {
- // TODO Auto-generated method stub
- //获得xml的资源
- String names[];
- String article[];
- TypedArray img;
- int i;
- names=getResources().getStringArray(R.array.name);
- article=getResources().getStringArray(R.array.article);
- img=getResources().obtainTypedArray(R.array.head_photo);
- list_msg=new ArrayList<Messages>();
- for(i=0;i<names.length;i++){
- Messages message=new Messages();
- message.setImg(img.getDrawable(i));
- message.setName(names[i]);
- message.setArticel(article[i]);
- message.setRq(String.valueOf(new Random().nextInt(120)+"分钟前"));
- Date date=new Date();
- SimpleDateFormat simple=new SimpleDateFormat("MM-dd");
- message.setTime(simple.format(date));
- list_msg.add(message);
- }
- }
- private void init() {
- // TODO Auto-generated method stub
- mylistview=(MyListView)findViewById(R.id.myListView1);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- Handler handler=new Handler(new Handler.Callback() {
- @Override
- public boolean handleMessage(Message arg0) {
- // TODO Auto-generated method stub
- if(arg0.what==0){
- //结束刷新
- mylistview.endOnRersh();
- }
- return false;
- }
- });
- //刷新接口实现类
- class OnRershListener implements OnRersh{
- //实现刷新接口的 方法,,在MyList中会回调该方法。
- //模拟
- @Override
- public void OnRershListener() {
- // TODO Auto-generated method stub
- new Thread(new Run()).start();//启动一个线程
- }
- }
- //线程接口实现类
- class Run implements Runnable{
- @Override
- public void run() {
- // TODO Auto-generated method stub
- try {
- Thread.sleep(2000);
- } catch (Exception e) {
- // TODO: handle exception
- e.printStackTrace();
- }
- handler.sendEmptyMessage(0);
- }
- }
- }
- </span>
ArticleAdapter.java
- <span style="font-family:Comic Sans MS;font-size:12px;">package com.bzu.edu.gxs.adapter;
- import java.util.List;
- import com.bzu.gxs.*;
- import android.content.Context;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.BaseAdapter;
- import android.widget.ImageView;
- import android.widget.LinearLayout;
- import android.widget.TextView;
- public class ArticleAdapter extends BaseAdapter {
- private List<Messages> list_mes=null;
- private Context context;
- public ArticleAdapter(Context context,List<Messages> list_mes) {
- // TODO Auto-generated constructor stub
- this.list_mes=list_mes;
- this.context=context;
- }
- @Override
- public int getCount() {
- // TODO Auto-generated method stub
- return list_mes.size();
- }
- @Override
- public Object getItem(int position) {
- // TODO Auto-generated method stub
- return list_mes.get(position);
- }
- @Override
- public long getItemId(int position) {
- // TODO Auto-generated method stub
- return position;
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- // TODO Auto-generated method stub
- ListItem listitem;
- if(convertView==null)
- {
- convertView=(LinearLayout)LayoutInflater.from(context).inflate(R.layout.layout_view, null);
- listitem=new ListItem();
- listitem.img=(ImageView)convertView.findViewById(R.id.head_img);
- listitem.name=(TextView)convertView.findViewById(R.id.name);
- //显示当前日期
- listitem.time=(TextView)convertView.findViewById(R.id.time);
- listitem.rq=(TextView)convertView.findViewById(R.id.rq);
- listitem.article=(TextView)convertView.findViewById(R.id.article);
- convertView.setTag(listitem);
- }else {
- listitem=(ListItem)convertView.getTag();
- }
- listitem.img.setImageDrawable(list_mes.get(position).getImg());
- listitem.name.setText(list_mes.get(position).getName());
- listitem.time.setText(list_mes.get(position).getTime());
- listitem.rq.setText(list_mes.get(position).getRq());
- listitem.article.setText(list_mes.get(position).getArticel());
- return convertView;
- }
- public class ListItem{
- ImageView img;
- TextView name;
- TextView time;
- TextView rq;
- TextView article;
- }
- }
- </span>
Messages.java
- <span style="font-family:Comic Sans MS;font-size:12px;">package com.bzu.edu.gxs.adapter;
- import android.graphics.drawable.Drawable;
- public class Messages {
- private Drawable img;
- private String name;
- private String time;
- private String rq;
- private String articel;
- public Drawable getImg() {
- return img;
- }
- public void setImg(Drawable img) {
- this.img = img;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getTime() {
- return time;
- }
- public void setTime(String time) {
- this.time = time;
- }
- public String getRq() {
- return rq;
- }
- public void setRq(String rq) {
- this.rq = rq;
- }
- public String getArticel() {
- return articel;
- }
- public void setArticel(String articel) {
- this.articel = articel;
- }
- }</span><span style="font-family:Comic Sans MS;">
- </span>
android学习:模拟微博看看界面相关推荐
- Android学习——5个UI界面设计
Android学习--5个UI界面设计 一.计算器 二.frameLayout(框架布局)实现登录界面 三.RelativeLayout相对布局实现登录界面 四.表格布局 五.多布局 一.计算器 &l ...
- [Android学习] 1. 简易登录界面设计
通过对活动及控件的学习,今天制作一个简易登录界面.简要记录一下操作过程.遇到的问题及学到的经验,希望各位老师多多提出问题不吝赐教! 预期设计效果图 设计要求: 1.布局不限,参考上图: 2.利用Ed ...
- Android学习之路-----倒计时欢迎界面(更有条理)
2019独角兽企业重金招聘Python工程师标准>>> Android学习之路-----倒计时欢迎界面(更有条理) 转载于:https://my.oschina.net/symahl ...
- Android学习之登陆界面设计(一)前后期准备以及相关配置
Android学习之登陆界面设计(一)前后期准备以及相关配置 前言 成品 成品样式 成品特点 工具 系统配置 手机配置 Android Studio 3.6.3 SDK 图片来源 矢量图标库 Back ...
- Android学习之登陆界面设计(二)基本界面设计
Android学习之登陆界面设计(二)基本界面设计 前提 绘图样式 - drawable bg_login_btn_submit.xml bg_login_panel_slide.xml bg_log ...
- Android学习笔记:Android基础知识点(不断更新中)
1.Android学习笔记:OkHttp 2.Android学习笔记:更新UI的方法(UI线程和非UI线程) 3.Android学习笔记:Volley 4.Android学习笔记:Handler 5. ...
- 嵌入式Linux+Android学习路线图
嵌入式Linux+Android学习路线图 2016-08-01 韦东山 百问科技 网站/论坛:www.100ask.net,www.100ask.org 淘 宝:100ask.taobao. ...
- 《Android学习指南》目录
转自:http://android.yaohuiji.com/about Android学习指南的内容分类: 分类 描述 0.学习Android必备的Java基础知识 没有Java基础的朋友,请不要先 ...
- Android学习之网上商城(上)
前言 又到了课设的时候,这次课设比较难受,因为两周时间中还有3门考试,在课设的时候还要复习,着实耗费了不少的精力,不过也收获多多,接下来总结一下本次课设中学到的东西 Android学习之网上商城(上) ...
最新文章
- AngularJs 1.5 $location获取url参数
- 为你的AliOS Things应用增加自定义cli命令
- 维护win10注册表
- 如何理解离散傅里叶变换(一)实数形式傅里叶变换
- 60-100-030-使用-Docker MySQL 8 主从复制
- 吴裕雄--天生自然 高等数学学习:空间直角坐标系
- SQL基础(3)-索引/触发器/视图操作
- 工作七年,从实习生到测试主管,我认识到倾听对一个人有多重要!
- C/C++存储区域划分(栈区,堆区,全局区,代码区)
- 熊猫压缩怎么使用_记录随时间变化的PagerDuty事件(使用熊猫)
- 线性代数拾遗(3)—— “系数矩阵的秩” 和 “齐次线性方程组基础解系向量个数” 的关系
- Android设备上一张图片的显示过程
- mysql中$和_在数据库中,$和#代表什么意思?
- vue.runtime.esm.js:620 [Vue warn]: Error in nextTick: “TypeError: Cannot convert object to primitive
- 微信小程序页面上面的名字怎么改_微信小程序取名|如何修改名字|取名规则!...
- 写一个函数,用户输入一个数判断是否是素数,并返弹出回值(又叫质数,只能被1和自身整数的数)
- ”舌上有龙泉,杀人不见血,生而为人,需得择善而行”
- 微软为阻止恶意软件侵害禁用Excel4.0宏、开源网站插件存在上万个安全漏洞|1月24日全球网络安全热点
- unravel AI图片动起来
- 酷乐萌机器人_《元气骑士》机器人末日科技实验体皮肤获得方法
热门文章
- 命令行教程,第一部分 — 导航目录
- 【金山文档】 2021级2021-2022学年第二学期大学物理实验考试表格-软件2112https://kdocs.cn/l/cmrTqjJ1ogsN
- Pycharm 远程debug项目配置
- SpringBoot后台搭建-创建restful接口,使用mybatisPlus实现分页
- 【BOI2007】逃跑问题 (BSOI2344)
- MySQL从入门到精通:多表查询的灵活运用_02
- php dwz,ThinkPHP+DWZ之DWZ自带编辑器图片上传
- 计算机鼠标左键不起作用,为什么电脑的左键点了不起作用
- DataWhale 组队学习爬虫 Task2
- 【广告联盟电商SEO】广告联盟网站收集