zoukankan      html  css  js  c++  java
  • Android L中间RecyclerView 、CardView 、Palette使用

    1. RecyclerView
    2. CardView
    3. 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


    设置横向:

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


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


    提取色值代码例如以下:


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

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

  • 相关阅读:
    利用Intelligencia.UrlRewriter.dll实现URL重写
    IIS环境下快速安装、配置和调试PHP5.2.0
    IIS6的PHP最佳配置方法
    PHP $_FILES详解
    一个顶N个的NextResult
    mysql 按年度、季度、月度、周、日SQL统计查询
    Windows Server 2003 “Loaded Configuration File none”未加载php.ini的解决办法
    windows 7 旗舰版,有效注册码
    php5调用web service (笔者测试成功)
    WEB架构师成长之路之一走正确的路
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4675581.html
Copyright © 2011-2022 走看看