一个好的应用肯定有一个好看的界面,给自己界面增加各种各样的特效或者独树一帜的外观,即使功能差不多,但你的应用肯定更受欢迎,

给应用加特效一般会写很多xml文件作为控件的背景,这种方式很容易实现,也很简单,也是大多数开发人员的首选,不过我认为更加酷炫的界面还是自己定义的比较好,比如继承view或者viewGroup,自己创造一个独树一帜的控件或者界面效果出来,比如像QQ的侧滑菜单效果等,而自定义控件肯定也是我走向高级程序员的必经之路.

扯远了,下面回到主题

时光轴效果其实已经不是新鲜玩意了,不过却不能说它不好看,相反,如果你的应用有这个效果,那肯定会增色不少,实现这个效果真的是很简单很简单,只要写一个布局就搞定了,虽然很简单,却也是程序员创造出来的,所以我也是非常佩服把它创造出来的那个人.

时光轴效果想必都见过,只需要一个布局文件即可搞定,一般都结合listView或者expandableListView实现,把布局文件添加到listView的item布局中,这样,一填充数据,整个效果就出来了,

核心的布局文件也很简单,如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@android:color/white"><!--左边的布局--><LinearLayoutandroid:id="@+id/timeLine_ll"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"><Viewandroid:layout_width="1dp"android:layout_height="30dp"android:background="@android:color/black"android:layout_marginLeft="28dp"/><ImageViewandroid:layout_width="40dp"android:layout_height="40dp"android:src="@drawable/item_icon"android:layout_marginLeft="10dp"/><TextViewandroid:id="@+id/currentDate_tv"android:layout_width="wrap_content"android:layout_height="20dp"android:text="2015.11.30"android:textSize="12sp"android:layout_marginTop="5dp"android:gravity="center"android:layout_marginLeft="5dp"/><Viewandroid:layout_width="1dp"android:layout_height="25dp"android:background="@android:color/black"android:layout_marginLeft="28dp"/></LinearLayout><!--右边的布局--><LinearLayoutandroid:layout_width="0dp"android:layout_height="100dp"android:layout_weight="1"android:layout_marginTop="20dp"android:layout_marginRight="20dp"android:background="@drawable/item_bg04"><TextViewandroid:id="@+id/content_tv"android:layout_width="match_parent"android:layout_height="match_parent"android:textColor="@android:color/white"android:gravity="center"android:text="时光轴效果"/></LinearLayout>
</LinearLayout>

该布局的效果如下:

ok,布局写好之后就可以填充到listView的item里了,在这之前先贴出来主界面的布局,主界面就一个listView,不过要注意的是,需要为listView的divider设置一个颜色,这里使用系统的透明色,同时divider的高度不要修改,默认情况下listView的divider高度为0dp,不过还是有一道线显示出来,所以要把divider的背景设置成透明,不过你也可以这样,把divider的高度设置成负数,这样就不用设置divider的背景色了,代码如下:

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><ListViewandroid:id="@+id/listView"android:layout_width="match_parent"android:layout_height="match_parent"android:divider="@android:color/transparent"/></RelativeLayout>

布局搞定之后就是为listView填充数据了,这里直接使用simpleAdapter作为适配器,不继承baseAdapter了,毕竟只是一个小demo,代码如下:

package com.rqq.timeaxis;import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ListView;
import android.widget.SimpleAdapter;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class MainActivity extends AppCompatActivity {private ListView listView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listView = (ListView) findViewById(R.id.listView);List<Map<String, String>> data = new ArrayList<>();for (int i = 0; i < 20; i++) {Map<String, String> map = new HashMap<>();map.put("content", "时光轴效果" + i);data.add(map);}SimpleAdapter adapter = new SimpleAdapter(this, data, R.layout.item_listview_layout, new String[]{"content"}, new int[]{R.id.content_tv});listView.setAdapter(adapter);}
}

ok,这样数据一填充,时光轴的效果就出来了,效果如下:

只要有好看的图标或图片作为背景,什么样的样式都做的出来,如果想让左边的竖线变成斜的,或者歪歪扭扭的,可以通过继承View或ViewGroup来实现一个专门显示斜线的控件.

androidd时光轴效果实现相关推荐

  1. 时光轴二之RecyclerView版时光轴效果

    因为现在 RecyclerView是support-v7包中的新组件,是一个强大的滑动组件,与经典的ListView相比,同样拥有item回收复用的功能,但是直接把viewholder的实现封装起来, ...

  2. Android自定义实现时光轴效果

    时光轴 时光轴(Time Line):从开始使用到结束的一段路程,就可以被看做为时光轴.在Android的开发中,时光轴也是一个经常会被列入开发需求的功能.例如:查询信息进度.申办证书进度.浏览历史痕 ...

  3. RecyclerView实现时光轴效果

    效果图 丑虽然丑了一点,那是布局的问题,不同的需求,自己写对应的布局就可以了.但是目的达到了.实现时间轴效果其实很简单,我们的难点就是在旁边的竖线这里,每个item都有分隔线分开.我们会用了recyc ...

  4. 时光轴三之 ExpandableListView版时光轴效果

    上两篇讲到了用listView和recyclerView来实现时光轴,这一篇我们用ExpandableListView来实现时光轴,废话不多说,直接来代码. 还是先activity_main.xml ...

  5. 使用ExpandableListView实现一个时光轴

    在许多App上都能看到时光轴的效果,比如携程等等,那么我们今天就利用ExpandableListView来实现一个时光轴效果,先来看看效果图: 效果还是挺简单的,这里我们主要是采用Expandable ...

  6. 网页中时光轴的简单实现

    时光轴效果如下: 鼠标滑过当前项时,左侧图标大小变大: index.html <!DOCTYPE html> <html lang="en"> <he ...

  7. 11个优秀的Android开发开源项目

    一. 一个类似微信的时光轴效果 项目地址 https://github.com/ljtyzhr/TimeLine 二. 安卓选择器类库,包括日期.时间.单项.双项选择器.城市地址选择器 项目地址 ht ...

  8. 分享大神的一些博文、视频、资料--持续更新

    心理学家 Ericsson 的研究发现:决定伟大水平和一般水平的关键因素,既不是天赋,也不是经验,而是[刻意练习]的程度. 教育最重要的不是灌输,而是引发思考.这样的话就没有必要按时间顺序,介绍很多细 ...

  9. 【压岁干货】精彩技术博客+优秀源码集锦

    虽然2015年已经过了一月有余,但在中国,好像只有过了春节才算进入新的一年.眼看着这也春节倒计时了,大家好像又都忙了起来,赶项目赶项目-- 从DevStore整理了一些优秀的技术博客和源码作为新春贺礼 ...

最新文章

  1. 深入理解JavaScript系列(10):JavaScript核心(晋级高手必读篇)
  2. eclipse中使用javadoc生成文档
  3. 多线程之实现Runnable接口及其优点
  4. 单件模式(Singleton Pattern)(转自TerryLee)
  5. Java 算法 聪明的美食家
  6. 计算机组装 毕业设计,毕业设计(论文)--计算机组装与维护 .doc
  7. 针对关键字是字符串的一个比较好的散列函数
  8. python能做什么工作好-python可以做什么工作
  9. mac上如何提取图片上的文字?几款不错的OCR文字识别工具推荐
  10. HL7(Health Level Seven)
  11. 使用Outlook发送邮件自定义发件人
  12. Linux下Oracle11G64位安装流程
  13. 基于微信校园跑腿小程序系统设计与实现 开题报告
  14. Echarts实现省级地图的两种方法(以浙江省为例)
  15. 能给我讲解一下高通C2D的知识吗
  16. vim中进行复制粘贴
  17. 2019蓝桥杯国赛E-第八大奇迹
  18. oracle dba导入,“只有DBA才能导入由其他DBA导出的文件”各种解决办法
  19. 由“最惨创业者”事件引起的“风险法则”与“生存法则”共生思考
  20. 【总结】AWS的(助理)架构师认证体系详解

热门文章

  1. iOS 查看.a文件的方法,可以查看有无热更新代码,防止上线被拒绝
  2. Java模拟微观世界_地球微观世界安卓版下载,地球微观世界游戏官方安卓版 v0.0.5 - 浏览器家园...
  3. 苹果手机怎么定位安卓手机_手机:你选择安卓还是苹果?苹果一定好吗?|安卓|手机|苹果手机|智能手机...
  4. hwd分别是长宽高_长宽高都是用什么字母来表示
  5. 关于死锁,死锁的四个必要条件的总结
  6. Leetcode刷题-312 :戳气球
  7. zipline安装以及bundles数据下载过程
  8. 剑指Offer算法笔记(Java)剪绳子
  9. 爱奇艺RND框架技术探索——架构与实现
  10. 腾讯投资帝国 VS 阿里实业版图,投资数据背后有何玄机?