完整项目介绍看这里:安卓项目SimpleQQ概述,可下载源码。

单条说说:qzone_time_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal"android:layout_width="match_parent"android:layout_height="75dp"><!--线条部分--><LinearLayout
            android:layout_width="wrap_content"android:layout_height="match_parent"android:gravity="center_horizontal"android:orientation="vertical"android:paddingLeft="30dp"><View
                android:layout_width="3dp"android:layout_height="20dp"android:background="@color/colorPrimary" /><ImageView
                android:layout_width="15dp"android:layout_height="15dp"android:background="@drawable/timeicon" /><View
                android:layout_width="3dp"android:layout_height="40dp"android:background="@color/colorPrimary" /></LinearLayout><!--文字部分--><LinearLayout
            android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:paddingLeft="30dp"android:paddingRight="30dp"android:paddingTop="20dp"><TextView
                android:id="@+id/tv_time"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="2016-05-03 00:22:36"android:textColor="#ABABAB" /><TextView
                android:id="@+id/tv_content"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="~~~OO空间,说点什么吧......"android:layout_below="@id/tv_time"android:textColor="#FF2C4250" /></LinearLayout></LinearLayout>

QQ空间布局:activity_qzone.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"android:layout_height="wrap_content"><TextView
                android:layout_width="fill_parent"android:layout_height="wrap_content"android:textAppearance="?android:attr/textAppearanceMedium"android:textColor="#fff"android:background="@color/colorPrimary"android:text="\nQQ空间,分享生活,留住感动~~\n"android:id="@+id/textView2"/></android.support.design.widget.TextInputLayout><!--QQ空间主布局--><ListView
            android:id="@+id/lv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:divider="@null"android:listSelector="@android:color/transparent" /></LinearLayout>

QQ空间:QzoneActivity

package com.example.yangenneng0.myapplication.viewUI;import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.widget.ListView;
import com.example.yangenneng0.myapplication.R;
import com.example.yangenneng0.myapplication.adapter.MoodAdapter;
import com.example.yangenneng0.myapplication.dao.MoodDAO;
import com.example.yangenneng0.myapplication.model.MoodEntity;import java.util.ArrayList;
import java.util.List;/*** User: yangenneng* DateTime: 2016/12/13 19:09* Description:历史时间轴*/
public class QzoneActivity  extends FragmentActivity {private ListView lv;            //QQ说说视图private MoodAdapter adapter;    //QQ说说适配器private List<MoodEntity> list;  //QQ说说列表@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_qzone);lv = (ListView) findViewById(R.id.lv);//QQ说说ListViewlist =new ArrayList<>();//list.add(new MoodEntity("2016-12-13 19:13:50","今天心情怎么样~~~"));//list.add(new MoodEntity("2016-12-13 19:21:50","今天上了计算机网络课程..."));//list.add(new MoodEntity("2016-12-13 19:33:50","计算机组成原理实验报告还没写"));//list.add(new MoodEntity("2016-12-13 19:45:50","安卓作业要交了!!!"));//list.add(new MoodEntity("2016-12-13 19:59:50","嵌入式要怎么考试啊???"));//list.add(new MoodEntity("2016-12-13 20:03:50","我的QQ基础版本快要完成了,哈哈"));//list.add(new MoodEntity("2016-12-13 20:05:50","之后增加服务器版........."));//list.add(new MoodEntity("2016-12-13 20:08:50",".NET项目还没完成呢!"));//list.add(new MoodEntity("2016-12-13 20:10:52","假期去哪玩呢?"));//list.add(new MoodEntity("2016-12-13 20:15:53","无语....无语...."));//list.add(new MoodEntity("2016-12-13 20:23:15","好久没看Java啦"));//list.add(new MoodEntity("2016-12-13 20:44:40","哈哈哈,分享生活!!"));list=MoodDAO.getmoodEntityArrayList();adapter = new MoodAdapter(this,list);lv.setAdapter(adapter);}}

说说实体类MoodEntity

package com.example.yangenneng0.myapplication.model;import com.example.yangenneng0.myapplication.utils.APPglobal;/*** User: yangenneng* DateTime: 2016/12/13 19:57* Description:说说实体类*/
public class MoodEntity {private String content;//说说内容private String time;   //说说发布时间private String person;//发布者姓名public MoodEntity(){}public MoodEntity(String content, String time) {this.content = content;this.time = time;this.person= APPglobal.NAME;//获取当前登陆的用户姓名//this.person=APPglobal.readFromPre();}public MoodEntity(String content, String time,String personname) {this.person=personname;this.content = content;this.time = time;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}public String getTime() {return time;}public void setTime(String time) {this.time = time;}public String getPerson() {return person;}public void setPerson(String person) {this.person = person;}
}

QQ说说数据访问对象MoodDAO

package com.example.yangenneng0.myapplication.dao;import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.example.yangenneng0.myapplication.db.DbConnection;
import com.example.yangenneng0.myapplication.model.MoodEntity;import java.util.ArrayList;/*** User: yangenneng* DateTime: 2016/12/17 17:48* Description:QQ说说数据访问对象*/
public class MoodDAO {private static ArrayList<MoodEntity> moodEntityArrayList=null;//保存说说数据//获取所有说说public static ArrayList<MoodEntity> getmoodEntityArrayList(){if(null==moodEntityArrayList){synchronized ( MoodDAO.class ){if(null==moodEntityArrayList){moodEntityArrayList=new ArrayList<MoodEntity>();}}//把数据库中已有的数据拿出来DbConnection connection=new DbConnection();SQLiteDatabase db=connection.getConnection();Cursor cursor=db.query("tb_mood",null,null,null,null,null,null);while ( cursor.moveToNext() ){int contentnum=cursor.getColumnIndex("content");int timenum=cursor.getColumnIndex("time");int personnum=cursor.getColumnIndex("person");String content=cursor.getString(contentnum);String time=cursor.getString(timenum);String person=cursor.getString(personnum);MoodEntity moodEntity=new MoodEntity(content,time,person);moodEntityArrayList.add(moodEntity);cursor.moveToNext();}}return moodEntityArrayList;}/*** 插入说说* @param moodEntity* @return*/public boolean insert(MoodEntity moodEntity){if(moodEntityArrayList==null){getmoodEntityArrayList();}try {moodEntityArrayList.add(moodEntity);DbConnection conn=new DbConnection();SQLiteDatabase db=conn.getConnection();String sql="insert into tb_mood(content,time,person) values('"+moodEntity.getContent()+"','"+moodEntity.getTime()+"','"+moodEntity.getPerson()+"')";db.execSQL(sql);db.close();return true;}catch ( Exception e ){return false;}}}

QQ说说适配器:MoodAdapter

package com.example.yangenneng0.myapplication.adapter;import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.example.yangenneng0.myapplication.R;
import com.example.yangenneng0.myapplication.model.MoodEntity;import java.util.List;/*** User: yangenneng* DateTime: 2016/12/13 19:58* Description:说说适配器*/
public class MoodAdapter extends BaseAdapter {//数据private List<MoodEntity> list;          //说说列表private LayoutInflater mInflater;public MoodAdapter(Context context, List<MoodEntity> list) {this.list = list;mInflater = LayoutInflater.from(context);}@Overridepublic int getCount() {return list.size();}@Overridepublic Object getItem(int position) {return list.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {if (convertView == null) {convertView = mInflater.inflate(R.layout.qzone_time_item, null);}ViewHolder holder = getViewHolder(convertView);MoodEntity kd = list.get(position);holder.tv_content.setText("["+kd.getPerson()+"] 说:"+kd.getContent());//作者+内容holder.tv_time.setText(kd.getTime());return convertView;}/*** 获得控件管理对象* @param view* @return*/private ViewHolder getViewHolder(View view) {ViewHolder holder = (ViewHolder) view.getTag();if (holder == null) {holder = new ViewHolder(view);view.setTag(holder);}return holder;}/*** 控件管理类*/private class ViewHolder {private TextView tv_content, tv_time;ViewHolder(View view) {tv_content = (TextView) view.findViewById(R.id.tv_content);tv_time = (TextView) view.findViewById(R.id.tv_time);}}
}

安卓项目SimpleQQ——QQ空间说说时光轴设计相关推荐

  1. Python爬虫编程思想(103):项目实战--抓取QQ空间说说的内容

    本例使用Selenium完成一个综合项目,该项目可以QQ空间说说的内容.首先需要分析一下QQ空间说说的HTML代码. 由于进入QQ空间需要登录,所以抓取QQ空间说说的内容需要如下2步: 模拟登录 抓取 ...

  2. qq空间显示手机型号android,qq发表说说怎么显示手机型号?手机QQ空间如何自定义手机型号?...

    最近小编用手机发表说说,小编细心的朋友发现,我的每一条说说下面都可以显示手机型号且还可以显示自己自定义手机型号,于是她就问小编:qq发表说说怎么显示手机型号?手机QQ空间如何自定义手机型号?其实,这些 ...

  3. android 空间动态,Android手机QQ空间新版:玩转GIF动态说说

    近日,Android版手机QQ空间2.4 全新发布,新版可支持GIF动态说说.多图上传等功能,并在 "可能认识的人"里显示用户真实头像,方便发现遗漏的好友,拓展自己的关系链.同时, ...

  4. 【Android UI设计与开发】第09期:底部菜单栏(四)Fragment+PopupWindow仿QQ空间最新版底部菜单栏

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9023451          在今天的这篇文章当中,我依然会以实战加理论结合 ...

  5. qq空间网页设计_网页设计中负空间的有效利用

    qq空间网页设计 Written by Alan Smith 由艾伦·史密斯 ( Alan Smith)撰写 Negative space is a key design element that y ...

  6. qq空间网页设计_网页设计中的负空间

    qq空间网页设计 重点 (Top highlight) Because screens are limited, web design is also limited. It can be said ...

  7. Atitit qzone qq空间博客自动点赞与评论工具的设计与实现

    Atitit qzone qq空间博客自动点赞与评论工具的设计与实现 Qzone发送评论的原理 首先,有个a标签, <a class="c_tx3" href="j ...

  8. 模仿QQ空间 网页设计

    模仿QQ空间 网页设计 目的:1.通过模仿QQ空间,全自主写代码,熟悉网页设计的流程 2.熟练的掌握HTML.CSS.JS的应用 3.将在此过程中遇到的问题及其解决方法记录在此,以便取用. 开始: 一 ...

  9. 3D空间堆叠PCB设计 ——PCB线路优化项目总结

    3D空间PCB堆叠设计适用于线路板安装空间狭小场合使用,PCB空间排布大大提高空间利用率更加高效. 前言 19年的5月下旬有人找我做一个项目,他们要3块比手掌张开还大的电路板(如下图)优化到可以放入水 ...

最新文章

  1. 赠书 | AI 还原宋代皇帝,原来这么帅?!
  2. Lucene默认的打分算法——ES默认
  3. Android性能优化典范 - 第6季
  4. java学习(42):巩固练习
  5. 面向对象三大特征之继承(extends)——Java笔记(六)
  6. DOM和BOM的区别
  7. 【数组】牛客网:调整数组顺序使奇数位于偶数前面(一)
  8. git原理详解与实操指南_基于dockercompose的Gitlab CI/CD实践amp;排坑指南
  9. python语言命名规则的是()_python语言命名规则是什么?
  10. python爬取网易云课堂python课程
  11. 判断无线网卡是否支持监听模式
  12. 悟--心智成熟的旅程
  13. 2020ICPC昆明热身赛 C.Statues(前缀优化dp+滚动数组优化空间)
  14. 6个部件组成一个圆球_【魔方拼装详细步骤】六块积木如何拼个球体
  15. 在Dreamwaver上基于HTML编写自己的
  16. 红帽linux安装docker,在CentOS7.6、红帽7.6系统中安装Docker:只需3条命令
  17. 面试问题——英语26 改善环境 愿望
  18. linux设备驱动归纳总结(六):3.中断下半部之tasklet
  19. 2017二本各大学计算机分数线,2017年二本院校排名及分数线
  20. 纪念2019年高教社杯全国大学生数学建模竞赛

热门文章

  1. python字符串‘’ “ ”使用以及使用转义字符
  2. 上位机开发 常用的平台及语言
  3. 微信小程序开发:实现毛玻璃效果
  4. 判断函数 y = x^n 的奇偶性
  5. 利用python实现猜数字小游戏
  6. 空间数据库基础理论 GIS空间数据处理分析涉及的基本概念
  7. 利用PowerPoint 2010制作图片(实例分享)
  8. DCDC80V降压24V、12V、5V、3.3V/2A电流降压转换器
  9. 杰理之音频编码AUDIO_ENC【篇】
  10. 使用Qt编写CUDA程序