Android5.0之RecyclerView、CardView、Palette简述(后面逐步发详细的)

本文主要是介绍Android5.0之RecyclerView、CardView、Palette简述(后面逐步发详细的),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. Android 5.0,Lollipop(棒棒糖)


L
 
         Android5.0最明显的变化是采用了全新的设计语言,被称之为“MaterialDesign”。界面加入了五彩缤纷的颜色、流畅的动画效果,呈现出一种清新的风格。采用这种设计的目的在于统一Android设备的外观和使用体验,不论是手机、平板还是多媒体播放器。  
      除了视觉上的进化,Android5.0还为开发者带来了5000个新API以及2个UI Widget,从而让设备间更具整体感及互联性。谷歌表示,类似歌曲、照片、应用及最近搜索的结果,都能够在各种Android设备上无缝同步,这便是Android5.0想要呈现的使用体验。另外,Android5.0还包括新的电池模式、多账户登陆、访客模式以及通过蓝牙设备解锁等新功能。 
      总得来说,Android5.0是继4.0之后的一次重大更新,谷歌也希望通过新版本,来更好地统一Android的用户体验、设备交互能力,值得期待。当然,Android5.0正式推出后,第三方手机厂商也会获得原始版本,但需要数月时间来进行定制,所以三星、HTC的旗舰机型还需要一些时间才能升级到Android5.0。

2. UI Widget

2.1 RecyclerView

      RecyclerView是一个更高级柔性版本的Listview,RecyclerView是一个能包含很多视图的容器,它能完美的处理循环和滚动。在item动态变化的Listview使用RecyclerView。


RecyclerView使用很简单,因为它提供了:

1、定位item的布局管理器

2、常见的item操作默认动画


你能够灵活的为RecyclerView自定义布局管理器和动画。

使用RecyclerView,必须使用指定一个adapter、定义一个布局管理器。创建adapter必须继承自RecyclerView.Adapter。实施的细节需要看数据类型和需要的视图。

widget

   RecyclerView widget


    RecyclerView 提供了 LayoutManager,RecylerView 不负责子 View 的布局,我们可以自定义 LayoutManager 来实现不同的布局效果,目前只提供了LinearLayoutManager。 LinearLayoutManager 可以指定方向,默认是垂直, 可以指定水平, 这样就轻松实现了水平的 ListView。

RecylerView  . Adapter 两个主要方法:onCreatViewHolder和onBindViewHolder

  1. @Override  
  2.     public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,  
  3.                                                    int viewType) {  
  4.         // create a new view  
  5.         View v = LayoutInflater.from(parent.getContext())  
  6.                                .inflate(R.layout.my_text_view, null);  
  7.         // set the view's size, margins, paddings and layout parameters  
  8.         ...  
  9.         ViewHolder vh = new ViewHolder(v);  
  10.         return vh;  
  11.     }  

onCreatViewHolder 用于 展现视图和它的持有者, 只有当我们真正需要创建一个新视图时才被调用,不需要检查它是否已经被回收


  1. @Override  
  2.     public void onBindViewHolder(ViewHolder holder, int position) {  
  3.         // - get element from your dataset at this position  
  4.         // - replace the contents of the view with that element  
  5.         holder.mTextView.setText(mDataset[position]);  
  6.   
  7.     }  

onBindViewHolder用于 把数据绑定到View上

优点: RecylerView 不负责子 View 的布局,通过 LayoutManager来管理;支持 ItemAnimator 动画,显示添加、删除item动画,但是 DefaultItemAnimator也有一个很好的动画效果了 ;完美的解决了item内部与view的点击事件;解决了listview不支持横向的问题等等;
缺点: RecylerView  不提供onItemClickListener方法

2.2 Gallery
RecylerView打造Gallery
Gallery被谷歌废弃以后,通常使用ViewPager和HorizontalScrollView来实现Gallery的效果。这种方式实现容易引起Scroll冲突
RecyclerView很好的解决了Scroll问题,实现Gallery效果只需要对RecyclerView进行扩展,实现ScrollChange的监听回调

2.3Card View

    CardView继承自FrameLayout类,可以在一个卡片布局中一致性的显示内容,卡片可以包含圆角和阴影。CardView作为一个Layout,可以布局其他View

cardView

怎样指定CardView的属性:
1、使用card_view命名空间: xmlns:card_view = "http://schemas.android.com/apk/res-auto"

2、使用android:cardCornerRadius属性指定圆角半径

3、使用CardView.setRadius 设置圆角半径。

4、使用 android:cardBackgroundColor属性设置卡片颜色
还可以使用android:elevation属性,创建一个阴影的卡片。


3. Palette

3.1Material Design
Material Design: http://www.ithome.com/html/android/91348.htm

Material Theme提供了一下功能:

1、系统widgets可以设置调色板

2、系统widgets的触摸反馈

3、Activity过渡动画


       你可以根据你品牌的色彩来定义Material Theme,可以使用Material Theme的色彩为status bar、action bar着色。参考下图。

布料布局


系统Widgets有新的设计和触摸动画,你也可以在自己的应用中自定义色彩调色板、触摸反馈动画、Activity过渡。


Material Theme的定义如下:

  • @android:style/Theme.Material (dark version)
  • @android:style/Theme.Material.Light (light version)
  • @android:style/Theme.Material.Light.DarkActionBar
3.2Palette
Palette应运而生,实现图片中提取色值

Palette从图像中提取突出的颜色,可以把色值赋给ActionBar、或者其他view,可以让界面整个色调统一。


Palette这个类中提取以下突出的颜色:

Vibrant  (有活力)

Vibrant dark(有活力 暗色)

Vibrant light(有活力 亮色)

Muted  (柔和)

Muted dark(柔和 暗色)

Muted light(柔和 亮色)


                1 2

代码示例如下:

  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.   
  8.           } 


4. 开发必备

以上不管是RecyclerView、CardView、Palette,需要官方最新的support-v7包以及对应的开发包。

开发工具的话请参详我这篇blog Android开发工具更新ADT23,AS0.8.13下载地址 里面有最新的ADT、SDK、Android Studio以及开发支持包

5. 资源

Google2014I/O大会 的报道: http://www.mobiletmt.com/?p=9671#

关于RecyclerView解决onitemclick问题,里面有解决方法和 RecyclerView的源码
大神bolog: http://blog.csdn.net/jwzhangjie/article/details/36868515


如有转载,请注明出处:http://blog.csdn.net/hjhrq1991


这篇关于Android5.0之RecyclerView、CardView、Palette简述(后面逐步发详细的)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/231846

相关文章

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

MySql match against工具详细用法

《MySqlmatchagainst工具详细用法》在MySQL中,MATCH……AGAINST是全文索引(Full-Textindex)的查询语法,它允许你对文本进行高效的全文搜素,支持自然语言搜... 目录一、全文索引的基本概念二、创建全文索引三、自然语言搜索四、布尔搜索五、相关性排序六、全文索引的限制七

python中各种常见文件的读写操作与类型转换详细指南

《python中各种常见文件的读写操作与类型转换详细指南》这篇文章主要为大家详细介绍了python中各种常见文件(txt,xls,csv,sql,二进制文件)的读写操作与类型转换,感兴趣的小伙伴可以跟... 目录1.文件txt读写标准用法1.1写入文件1.2读取文件2. 二进制文件读取3. 大文件读取3.1

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

如何在Mac上安装并配置JDK环境变量详细步骤

《如何在Mac上安装并配置JDK环境变量详细步骤》:本文主要介绍如何在Mac上安装并配置JDK环境变量详细步骤,包括下载JDK、安装JDK、配置环境变量、验证JDK配置以及可选地设置PowerSh... 目录步骤 1:下载JDK步骤 2:安装JDK步骤 3:配置环境变量1. 编辑~/.zshrc(对于zsh

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

C++ vector的常见用法超详细讲解

《C++vector的常见用法超详细讲解》:本文主要介绍C++vector的常见用法,包括C++中vector容器的定义、初始化方法、访问元素、常用函数及其时间复杂度,通过代码介绍的非常详细,... 目录1、vector的定义2、vector常用初始化方法1、使编程用花括号直接赋值2、使用圆括号赋值3、ve

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.