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

相关文章

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

Java中HashMap的用法详细介绍

《Java中HashMap的用法详细介绍》JavaHashMap是一种高效的数据结构,用于存储键值对,它是基于哈希表实现的,提供快速的插入、删除和查找操作,:本文主要介绍Java中HashMap... 目录一.HashMap1.基本概念2.底层数据结构:3.HashCode和equals方法为什么重写Has

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

MySQL中优化CPU使用的详细指南

《MySQL中优化CPU使用的详细指南》优化MySQL的CPU使用可以显著提高数据库的性能和响应时间,本文为大家整理了一些优化CPU使用的方法,大家可以根据需要进行选择... 目录一、优化查询和索引1.1 优化查询语句1.2 创建和优化索引1.3 避免全表扫描二、调整mysql配置参数2.1 调整线程数2.

Java实现TXT文件导入功能的详细步骤

《Java实现TXT文件导入功能的详细步骤》在实际开发中,很多应用场景需要将用户上传的TXT文件进行解析,并将文件中的数据导入到数据库或其他存储系统中,本文将演示如何用Java实现一个基本的TXT文件... 目录前言1. 项目需求分析2. 示例文件格式3. 实现步骤3.1. 准备数据库(假设使用 mysql

MySQL 临时表创建与使用详细说明

《MySQL临时表创建与使用详细说明》MySQL临时表是存储在内存或磁盘的临时数据表,会话结束时自动销毁,适合存储中间计算结果或临时数据集,其名称以#开头(如#TempTable),本文给大家介绍M... 目录mysql 临时表详细说明1.定义2.核心特性3.创建与使用4.典型应用场景5.生命周期管理6.注

在 Spring Boot 中连接 MySQL 数据库的详细步骤

《在SpringBoot中连接MySQL数据库的详细步骤》本文介绍了SpringBoot连接MySQL数据库的流程,添加依赖、配置连接信息、创建实体类与仓库接口,通过自动配置实现数据库操作,... 目录一、添加依赖二、配置数据库连接三、创建实体类四、创建仓库接口五、创建服务类六、创建控制器七、运行应用程序八