博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android L中间RecyclerView 、CardView 、Palette使用
阅读量:7247 次
发布时间:2019-06-29

本文共 3040 字,大约阅读时间需要 10 分钟。

    提到,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的使用能够參考。

RecyclerView能够实现横向、纵向滑动视图:

                

RecyclerView 1                                    RecyclerView 2

设置横向:

[java]
  1. @Override 
  2.    protected void onCreate(Bundle savedInstanceState) { 
  3.        super.onCreate(savedInstanceState); 
  4.        setContentView(R.layout.activity_recycler_view_horizontal); 
  5.  
  6.        // specify an adapter (see also next example) 
  7.        List<MyAdapter.Item> itemList = new ArrayList<MyAdapter.Item>(); 
  8.        for (int i = 0; i < 100; i++) 
  9.            itemList.add(new MyAdapter.Item("Item " + i, "world")); 
  10.        mAdapter = new MyAdapter(itemList); 
  11.  
  12.  
  13.        mRecyclerViewHorizontal = (RecyclerView) findViewById(R.id.my_recycler_view_horizontal); 
  14.        mRecyclerViewHorizontal.setHasFixedSize(true); 
  15.  
  16.        // use a linear layout manager 
  17.        LinearLayoutManager mLayoutManager = new LinearLayoutManager(this); 
  18.        mLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); 
  19.        mRecyclerViewHorizontal.setLayoutManager(mLayoutManager); 
  20.        mRecyclerViewHorizontal.setAdapter(mAdapter); 
  21.  
  22.  
  23.    } 
@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_recycler_view_horizontal);        // specify an adapter (see also next example)        List
itemList = new ArrayList
(); 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 的使用能够參考

文章最后会给出这篇文章演示样例代码。

                   

CardView                                         Palette

Palette

    Palette从图像中提取突出的颜色,这样能够把色值赋给ActionBar、或者其它,能够让界面整个色调统一,效果见上图(Palette)。

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

Vibrant  (有活力)

Vibrant dark(有活力 暗色)

Vibrant light(有活力 亮色)

Muted  (柔和)

Muted dark(柔和 暗色)

Muted light(柔和 亮色)

提取色值代码例如以下:

[java]
  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.           } 

版权声明:本文博客原创文章,博客,未经同意,不得转载。

你可能感兴趣的文章
UML 类图
查看>>
人工智能即将取代人类?
查看>>
关于常用的http请求头以及响应头详解
查看>>
HTML解析过程会触发哪些事件?
查看>>
技术变现,到底怎么变?这里有几个小众的“金点子”
查看>>
AbstractQueuedSynchronizer 队列同步器(AQS)
查看>>
构建可读性更高的 ASP.NET Core 路由
查看>>
#学习笔记-sql# union实例及用法
查看>>
html-webpack-plugin
查看>>
Promise源码实现2
查看>>
警告WIN10用户!Disk Cleanup可能会误删下载活页夹
查看>>
java B2B2C Springcloud电子商务平台源码-eureka集群整合config配置中心
查看>>
小猿圈python之打印输出九九乘法表
查看>>
支配vue框架模版语法之v-else
查看>>
CentOS7 0安装Maven
查看>>
Python脚本--利用运算符重载简化MongoDB的命令
查看>>
大三这一年的求职感悟(附网易面经+学习经历)|掘金技术征文
查看>>
mpvue小程序踩坑之旅
查看>>
「干货」细说 Javascript 中的浮点数精度丢失问题(内附好课推荐)
查看>>
Potential leak of an object stored into ''
查看>>