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

相关文章

沁恒CH32在MounRiver Studio上环境配置以及使用详细教程

目录 1.  RISC-V简介 2.  CPU架构现状 3.  MounRiver Studio软件下载 4.  MounRiver Studio软件安装 5.  MounRiver Studio软件介绍 6.  创建工程 7.  编译代码 1.  RISC-V简介         RISC就是精简指令集计算机(Reduced Instruction SetCom

arduino ide安装详细步骤

​ 大家好,我是程序员小羊! 前言: Arduino IDE 是一个专为编程 Arduino 微控制器设计的集成开发环境,使用起来非常方便。下面将介绍如何在不同平台上安装 Arduino IDE 的详细步骤,包括 Windows、Mac 和 Linux 系统。 一、在 Windows 上安装 Arduino IDE 1. 下载 Arduino IDE 打开 Arduino 官网

GPT系列之:GPT-1,GPT-2,GPT-3详细解读

一、GPT1 论文:Improving Language Understanding by Generative Pre-Training 链接:https://cdn.openai.com/research-covers/languageunsupervised/language_understanding_paper.pdf 启发点:生成loss和微调loss同时作用,让下游任务来适应预训

多路转接之select(fd_set介绍,参数详细介绍),实现非阻塞式网络通信

目录 多路转接之select 引入 介绍 fd_set 函数原型 nfds readfds / writefds / exceptfds readfds  总结  fd_set操作接口  timeout timevalue 结构体 传入值 返回值 代码 注意点 -- 调用函数 select的参数填充  获取新连接 注意点 -- 通信时的调用函数 添加新fd到

【详细介绍一下GEE】

GEE(Google Earth Engine)是一个强大的云计算平台,它允许用户处理和分析大规模的地球科学数据集,如卫星图像、气候模型输出等。以下是对GEE用法的详细介绍: 一、平台访问与账户设置 访问GEE平台: 用户可以通过访问Google Earth Engine的官方网站来开始使用GEE。 创建账户: 用户需要注册并登录Google账户,然后申请访问GEE平台。申请过程可能需要提

专题二_滑动窗口_算法专题详细总结

目录 滑动窗口,引入: 滑动窗口,本质:就是同向双指针; 1.⻓度最⼩的⼦数组(medium) 1.解析:给我们一个数组nums,要我们找出最小子数组的和==target,首先想到的就是暴力解法 1)暴力: 2)优化,滑动窗口: 1.进窗口 2.出窗口 3.更新值 2.⽆重复字符的最⻓⼦串(medium) 1)仍然是暴力解法: 2)优化: 进窗口:hash[s[rig

单位权中误差 详细介绍

单位权中误差(Unit Weight Error, UWE)是用于描述测量数据不确定性的一个统计量,特别是在地理信息系统(GIS)、导航和定位系统中。它主要用于评估和比较不同测量系统或算法的精度。以下是对单位权中误差的详细介绍: 1. 基本概念 单位权中误差(UWE): 定义:单位权中误差表示每个观测值(测量值)在估算中的标准误差。它是误差的一个统计量,主要用于评估测量系统的精度。单位:通常

python内置模块datetime.time类详细介绍

​​​​​​​Python的datetime模块是一个强大的日期和时间处理库,它提供了多个类来处理日期和时间。主要包括几个功能类datetime.date、datetime.time、datetime.datetime、datetime.timedelta,datetime.timezone等。 ----------动动小手,非常感谢各位的点赞收藏和关注。----------- 使用datet

嵌入式技术的核心技术有哪些?请详细列举并解释每项技术的主要功能和应用场景。

嵌入式技术的核心技术包括处理器技术、IC技术和设计/验证技术。 1. 处理器技术    通用处理器:这类处理器适用于不同类型的应用,其主要特征是存储程序和通用的数据路径,使其能够处理各种计算任务。例如,在智能家居中,通用处理器可以用于控制和管理家庭设备,如灯光、空调和安全系统。    单用途处理器:这些处理器执行特定程序,如JPEG编解码器,专门用于视频信息的压缩或解压。在数字相机中,单用途

【Python篇】PyQt5 超详细教程——由入门到精通(终篇)

文章目录 PyQt5超详细教程前言第9部分:菜单栏、工具栏与状态栏9.1 什么是菜单栏、工具栏和状态栏9.2 创建一个简单的菜单栏示例 1:创建带有菜单栏的应用程序代码详解: 9.3 创建工具栏示例 2:创建带有工具栏的应用程序代码详解: 9.4 创建状态栏示例 3:创建带有状态栏的应用程序代码详解: 9.5 菜单栏、工具栏与状态栏的结合示例 4:完整的应用程序界面代码详解: 9.6 总结