androidd时光轴效果实现
一个好的应用肯定有一个好看的界面,给自己界面增加各种各样的特效或者独树一帜的外观,即使功能差不多,但你的应用肯定更受欢迎,
给应用加特效一般会写很多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时光轴效果实现相关推荐
- 时光轴二之RecyclerView版时光轴效果
因为现在 RecyclerView是support-v7包中的新组件,是一个强大的滑动组件,与经典的ListView相比,同样拥有item回收复用的功能,但是直接把viewholder的实现封装起来, ...
- Android自定义实现时光轴效果
时光轴 时光轴(Time Line):从开始使用到结束的一段路程,就可以被看做为时光轴.在Android的开发中,时光轴也是一个经常会被列入开发需求的功能.例如:查询信息进度.申办证书进度.浏览历史痕 ...
- RecyclerView实现时光轴效果
效果图 丑虽然丑了一点,那是布局的问题,不同的需求,自己写对应的布局就可以了.但是目的达到了.实现时间轴效果其实很简单,我们的难点就是在旁边的竖线这里,每个item都有分隔线分开.我们会用了recyc ...
- 时光轴三之 ExpandableListView版时光轴效果
上两篇讲到了用listView和recyclerView来实现时光轴,这一篇我们用ExpandableListView来实现时光轴,废话不多说,直接来代码. 还是先activity_main.xml ...
- 使用ExpandableListView实现一个时光轴
在许多App上都能看到时光轴的效果,比如携程等等,那么我们今天就利用ExpandableListView来实现一个时光轴效果,先来看看效果图: 效果还是挺简单的,这里我们主要是采用Expandable ...
- 网页中时光轴的简单实现
时光轴效果如下: 鼠标滑过当前项时,左侧图标大小变大: index.html <!DOCTYPE html> <html lang="en"> <he ...
- 11个优秀的Android开发开源项目
一. 一个类似微信的时光轴效果 项目地址 https://github.com/ljtyzhr/TimeLine 二. 安卓选择器类库,包括日期.时间.单项.双项选择器.城市地址选择器 项目地址 ht ...
- 分享大神的一些博文、视频、资料--持续更新
心理学家 Ericsson 的研究发现:决定伟大水平和一般水平的关键因素,既不是天赋,也不是经验,而是[刻意练习]的程度. 教育最重要的不是灌输,而是引发思考.这样的话就没有必要按时间顺序,介绍很多细 ...
- 【压岁干货】精彩技术博客+优秀源码集锦
虽然2015年已经过了一月有余,但在中国,好像只有过了春节才算进入新的一年.眼看着这也春节倒计时了,大家好像又都忙了起来,赶项目赶项目-- 从DevStore整理了一些优秀的技术博客和源码作为新春贺礼 ...
最新文章
- 深入理解JavaScript系列(10):JavaScript核心(晋级高手必读篇)
- eclipse中使用javadoc生成文档
- 多线程之实现Runnable接口及其优点
- 单件模式(Singleton Pattern)(转自TerryLee)
- Java 算法 聪明的美食家
- 计算机组装 毕业设计,毕业设计(论文)--计算机组装与维护 .doc
- 针对关键字是字符串的一个比较好的散列函数
- python能做什么工作好-python可以做什么工作
- mac上如何提取图片上的文字?几款不错的OCR文字识别工具推荐
- HL7(Health Level Seven)
- 使用Outlook发送邮件自定义发件人
- Linux下Oracle11G64位安装流程
- 基于微信校园跑腿小程序系统设计与实现 开题报告
- Echarts实现省级地图的两种方法(以浙江省为例)
- 能给我讲解一下高通C2D的知识吗
- vim中进行复制粘贴
- 2019蓝桥杯国赛E-第八大奇迹
- oracle dba导入,“只有DBA才能导入由其他DBA导出的文件”各种解决办法
- 由“最惨创业者”事件引起的“风险法则”与“生存法则”共生思考
- 【总结】AWS的(助理)架构师认证体系详解
热门文章
- iOS 查看.a文件的方法,可以查看有无热更新代码,防止上线被拒绝
- Java模拟微观世界_地球微观世界安卓版下载,地球微观世界游戏官方安卓版 v0.0.5 - 浏览器家园...
- 苹果手机怎么定位安卓手机_手机:你选择安卓还是苹果?苹果一定好吗?|安卓|手机|苹果手机|智能手机...
- hwd分别是长宽高_长宽高都是用什么字母来表示
- 关于死锁,死锁的四个必要条件的总结
- Leetcode刷题-312 :戳气球
- zipline安装以及bundles数据下载过程
- 剑指Offer算法笔记(Java)剪绳子
- 爱奇艺RND框架技术探索——架构与实现
- 腾讯投资帝国 VS 阿里实业版图,投资数据背后有何玄机?