Android L中间RecyclerView 、CardView 、Palette使用
《Material Design》提到,Android L版本号中新增了RecyclerView、CardView 、Palette。
RecyclerView、CardView为用于显示复杂视图的新增Widget。Palette作为调色板类,能够让你从图像中提取突出的颜色。
RecyclerView
RecyclerView作为替代ListView使用,RecyclerView标准化了ViewHolder,ListView中convertView是复用的。在RecyclerView中。是把ViewHolder作为缓存的单位了,然后convertView作为ViewHolder的成员变量保持在ViewHolder中。也就是说,如果没有屏幕显示10个条目。则会创建10个ViewHolder缓存起来,每次复用的是ViewHolder,所以他把getView这种方法变为了onCreateViewHolder。
ViewHolder更适合多种子布局的列表,尤其IM的对话列表。RecyclerView不提供setOnItemClickListener方法。你能够在ViewHolder中加入事件。
RecyclerView的使用能够參考《Material
Design UI Widgets》。
RecyclerView能够实现横向、纵向滑动视图:
RecyclerView 1
RecyclerView 2
设置横向:
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_recycler_view_horizontal);
- // specify an adapter (see also next example)
- List<MyAdapter.Item> itemList =
new ArrayList<MyAdapter.Item>(); - for (int i =
0; i < 100; i++) - itemList.add(new MyAdapter.Item("Item " + i,
"world")); - mAdapter = new MyAdapter(itemList);
- mRecyclerViewHorizontal = (RecyclerView) findViewById(R.id.my_recycler_view_horizontal);
- mRecyclerViewHorizontal.setHasFixedSize(true);
- // use a linear layout manager
- LinearLayoutManager mLayoutManager =
new LinearLayoutManager(this); - mLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
- mRecyclerViewHorizontal.setLayoutManager(mLayoutManager);
- mRecyclerViewHorizontal.setAdapter(mAdapter);
- }
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recycler_view_horizontal); // specify an adapter (see also next example)
List<MyAdapter.Item> itemList = new ArrayList<MyAdapter.Item>();
for (int i = 0; i < 100; i++)
itemList.add(new MyAdapter.Item("Item " + i, "world"));
mAdapter = new MyAdapter(itemList); mRecyclerViewHorizontal = (RecyclerView) findViewById(R.id.my_recycler_view_horizontal);
mRecyclerViewHorizontal.setHasFixedSize(true); // use a linear layout manager
LinearLayoutManager mLayoutManager = new LinearLayoutManager(this);
mLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
mRecyclerViewHorizontal.setLayoutManager(mLayoutManager);
mRecyclerViewHorizontal.setAdapter(mAdapter); }
CardView
CardView继承自FrameLayout类,能够在一个卡片布局中一致性的显示内容。卡片能够包括圆角和阴影。CardView是一个Layout。能够布局其它View。CardView
的使用能够參考《Material Design UI Widgets》。
文章最后会给出这篇文章演示样例代码。
CardView
Palette
Palette
Palette从图像中提取突出的颜色,这样能够把色值赋给ActionBar、或者其它,能够让界面整个色调统一,效果见上图(Palette)。
Palette这个类中提取下面突出的颜色:
Vibrant (有活力)
Vibrant dark(有活力 暗色)
Vibrant light(有活力 亮色)
Muted (柔和)
Muted dark(柔和 暗色)
Muted light(柔和 亮色)
提取色值代码例如以下:
- Bitmap bm = BitmapFactory.decodeResource(getResources(), item.image);
- Palette palette = Palette.generate(bm);
- if (palette.getLightVibrantColor() !=
null) { - name.setBackgroundColor(palette.getLightVibrantColor().getRgb());
- getSupportActionBar().setBackgroundDrawable(new ColorDrawable(palette.getLightVibrantColor().getRgb()));
- // getSupportActionBar().
- }
版权声明:本文博客原创文章,博客,未经同意,不得转载。
Android L中间RecyclerView 、CardView 、Palette使用的更多相关文章
- Android L 之 RecyclerView 、CardView 、Palette
转: http://blog.csdn.net/xyz_lmn/article/details/38735117 <Material Design>提到,Android L版本中新增了Re ...
- Android L中的RecyclerView 、CardView 、Palette的使用
<Material Design>提到,Android L版本中新增了RecyclerView.CardView .Palette.RecyclerView.CardView为用于显示复杂 ...
- ANDROID L——RecyclerView,CardView进口和使用(Demo)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 简单介绍: 这篇文章是ANDROID L--Material Design具体解释(UI控 ...
- Android L新控件RecyclerView简介
Android L是android进化史上的里程碑,尽管还没有正式发布4.5或者5.0,但预览版也同样精彩. 这篇文章只是另外一篇博客的总结性翻译,能够读懂原文的,可以点开这个链接去阅读精彩的原文:h ...
- 【android】使用RecyclerView和CardView,实现知乎日报精致布局
完整代码,请参考我的博客园客户端,git地址:http://git.oschina.net/yso/CNBlogs 在写博客园客户端的时候,突然想到,弄个知乎日报风格的简单清爽多好!不需要那么多繁杂的 ...
- ANDROID L——Material Design详解(UI控件)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! Android L: Google已经确认Android L就是Android Lolli ...
- RecyclerView,CardView导入和使用(Demo)
简介: 这篇文章是ANDROID L——Material Design详解(UI控件)的一个补充或者说是应用实例,如果有时间建议大家稍微浏览一下上篇文章. 本文主要介绍Android L新增加的两个U ...
- Android应用开发:CardView的使用及兼容
引言 在Google I/O 2014上,Google公布了Android L Preview版本,此版本的UI有了非常大的改变,很炫很给力!同时,Google也给出了两个可以向下兼容的控件放到了V7 ...
- ANDROID L——Material Design综合应用(Demo)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! Material Design: Material Design是Google推出的一个全 ...
随机推荐
- Jquery中toggleClass的两种用法
css样式: <style type="text/css"> .bgc{ background-color:#F00; color: #FFF} </style& ...
- 发展合作-ASP.Net传递页面之间的值
在合作开发中,在页面串传值的时候,遇到了一些困难.在网上搜罗了一下,发现好多的传值方式,能够简单地分下面三种. 一. URL传值 原页面的值放到目标页面的URL中.然后通过QueryString方法获 ...
- linux下一个C语言flock功能使用 .
表头文件 #include<sys/file.h> 定义函数 int flock(int fd,int operation); 函数说明 flock()会依參数operation所指 ...
- android笔记6——intent的使用
今天挑出一节专门来说一下使用intent和intentfilter进行通信. 场景:一个Activity启动还有一个Activity. 前面已经讲了Fragment的切换,Fragment顾名思义是基 ...
- Android在API推荐的方式来实现SQLite数据库的增长、删除、变化、检查操作
package com.examp.use_SQLite.dao; import java.util.ArrayList; import java.util.List; import android. ...
- ubuntu12.04硬盘安装
ubuntu12.04发布了 , 安装又是一个话题.安装系统有很多方法,比如livecd,和u盘,但这些都需借用外部设备,所以硬盘安装是最好不过的方法了.u盘,cd安装都非常的简 单,对于那些讨厌用光 ...
- Greenplum+Hadoop学习笔记-14-定义数据库对象之创建与管理模式
6.3.创建与管理模式 概述:DB内组织对象的一种逻辑结构.一个DB内能够有多个模式.在未指定模式时默认放置在public中.能够通过"\dn"方式查看数据库中现有模式: test ...
- CF417D--- Cunning Gena(序列+像缩进dp)
A boy named Gena really wants to get to the "Russian Code Cup" finals, or at least get a t ...
- maven插件的生命周期的详细说明(两)
插件配置 定义解释:插件目标 当我们了解了maven插件之后.我们发现假设为每个功能编写一个独立的插件显然是不可取的,由于这些任务背后有非常多能够复用的代码.因此,把这些功能聚集在一个插件里,每个功能 ...
- VMware workstation 10.0的永久key
MA491-6NL5Q-AZAM0-ZH0N2-AAJ5A5A6F6-88247-XZH59-HL0Q6-8CD2VHF6QX-20187-2Z391-522NH-9AELT5F29M-48312-8 ...