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

设置横向:

[java] view plaincopyprint?

  1. @Override
  2. protected void onCreate(Bundle savedInstanceState) {
  3. super.onCreate(savedInstanceState);
  4. setContentView(R.layout.activity_recycler_view_horizontal);
  5. // specify an adapter (see also next example)
  6. List<MyAdapter.Item> itemList = new ArrayList<MyAdapter.Item>();
  7. for (int i = 0; i < 100; i++)
  8. itemList.add(new MyAdapter.Item("Item " + i, "world"));
  9. mAdapter = new MyAdapter(itemList);
  10. mRecyclerViewHorizontal = (RecyclerView) findViewById(R.id.my_recycler_view_horizontal);
  11. mRecyclerViewHorizontal.setHasFixedSize(true);
  12. // use a linear layout manager
  13. LinearLayoutManager mLayoutManager = new LinearLayoutManager(this);
  14. mLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
  15. mRecyclerViewHorizontal.setLayoutManager(mLayoutManager);
  16. mRecyclerViewHorizontal.setAdapter(mAdapter);
  17. }

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(柔和 亮色)

提取色值代码如下:

[java] view plaincopyprint?

    1. Bitmap bm = BitmapFactory.decodeResource(getResources(), item.image);
    2. Palette palette = Palette.generate(bm);
    3. if (palette.getLightVibrantColor() != null) {
    4. name.setBackgroundColor(palette.getLightVibrantColor().getRgb());
    5. getSupportActionBar().setBackgroundDrawable(new ColorDrawable(palette.getLightVibrantColor().getRgb()));
    6. // getSupportActionBar().
    7. }
时间: 2024-08-06 07:54:34

Android L中的RecyclerView 、CardView 、Palette的使用的相关文章

Android L中水波纹点击效果的实现

博主参加了2014 CSDN博客之星评选,帮我投一票吧. 点击给我投票 前言 前段时间android L(android 5.0)出来了,界面上做了一些改动,主要是添加了若干动画和一些新的控件,相信大家对view的点击效果-水波纹很有印象吧,点击一个view,然后一个水波纹就会从点击处扩散开来,本文就来分析这种效果的实现.首先,先说下L上的实现,这种波纹效果,L上提供了一种动画,叫做Reveal效果,其底层是通过拿到view的canvas然后不断刷新view来完成的,这种效果需要view的支持,

【转】NDK编译可执行文件在Android L中运行显示error: only position independent executables (PIE) are supported.失败问题解决办法。

原文网址:http://blog.csdn.net/hxdanya/article/details/39371759 由于使用了NDK编译的可执行文件在应用中调用,在4.4及之前的版本上一直没出问题.最近由于要测试在Android L上的运行情况发现,当运行该可执行文件时,报如下错误: error: only position independent executables (PIE) are supported. PIE这个安全机制从4.1引入,但是Android L之前的系统版本并不会去检验

Android 开发中使用 Recyclerview

Android 开发中 Recyclerview 的使用 Overview 学习自:博客园 CSDN Android 官方文档 Android 呈现数据的方式有很多种,使用自定义控件,使用 ListView,使用Recyclerview. 那么我们今天看一下Android 中 如是使用 Recyclerview. 声明依赖性 官方文档所示,我们需要声明以下依赖性: dependencies { implementation "androidx.recyclerview:recyclerview:

android studio中使用recyclerview制作个显示考勤打卡的日历来

1. 用户在app端选择个日期就能查询这个月的考勤打卡信息,并以日历上标注不同的颜色来显示给用户,当然这个日历是recyclerview做出来的,只是每行显示7个,表示一周的七天. 2. 员工考勤打卡的数据获取与分析都是在服务器端完成的,通过app端传入的日期和用户名,来完成用户考勤的提取分析,并把结果返回给app,使用webservice. 3.在app端把数据和recyclerview进行绑定,对不同的结果使用不同的颜色,就这样了,结果还不错. 里面最关键的部分是1. 计算选择的日期下当月有

android studio中使用recyclerview小白篇(四)

经过努力,我们的recyclerview终于可以使用了,但是装配上真实的数据后,发现左边的内容太长了,如果超过一行,左边内容和右边的内容竟然重叠在一起了,好是让人心塞啊,如下图 后来发现设置左边textview的这个属性,android:layout_marginRight="100dp",然后就能很整齐不会重叠在一起了,当然你也得看右边内容的宽度了,一定要宽于右边内容的宽度才行,运行后如下图

android studio中使用recyclerview小白篇(三)

继续接着昨天的来,昨天终于弄好了一个例子,但是那个没有点击事件, 需要自己添加,参照别人的例子,弄了个比较简单的,主要是改动myRecycleradatper.java中的部分. 增加如下的接口: //增加一个静态的接口. private OnItemClickListener listener; public static interface OnItemClickListener { void onItemClick(View view , int position); } public v

Android Material Design之Toolbar与Palette

转:http://blog.csdn.net/jdsjlzx/article/details/41441083 前言 我们都知道Marterial Design是Google推出的全新UI设计规范,如果对其不太了解的可以看下:Material design非官方中文指导手册 ,或者我的前面几篇Material Design的译文,相比之前Google在Android Holo风格上平平淡淡的表现不同,Material Design现在是被Google所比较重视的.在推出这门全新设计语言后,And

ANDROID L——Material Design详解(UI控件)

转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! Android L: Google已经确认Android L就是Android Lollipop(5.0). 前几天发现Android5.0正式版的sdk已经可以下载了,而且首次搭载Android L系统的Nexus 6和 Nexus 9也即将上市. 所以是时候开始学习Android L了! 关于Android L如何配置模拟器和创建项目,如果大家有兴趣的话可以看看我之前的一篇文章: A

ANDROID L——Material Design详解(主题和布局)

Android L: Android L可能就是Android Lollipop或者Lemon Pie(4.5或者5.0),因为Google一直以来都是用甜点为版本命名. Google之前就已经提前推出了Android L Developer Preview(开发者预览版)来帮助开发者更快的了解Android特性,而不久前也推出了64位的模拟器镜像.相信Android L正式版也不远了,所以是时候开始学习Android L了. 关于Android L如何配置模拟器和创建项目,如果大家有兴趣的话可