《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
设置横向:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recycler_view_horizontal);
// specify an adapter (see also next example)
List<MyAdapter.Item> itemList = new ArrayList<MyAdapter.Item>();
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的使用可以参考《Material Design UI Widgets》。文章最后会给出这篇文章示例代码。
CardView Palette
Palette
Palette从图像中提取突出的颜色,这样可以把色值赋给ActionBar、或者其他,可以让界面整个色调统一,效果见上图(Palette)。
Palette这个类中提取以下突出的颜色:
Vibrant (有活力)
Vibrant dark(有活力 暗色)
Vibrant light(有活力 亮色)
Muted (柔和)
Muted dark(柔和 暗色)
Muted light(柔和 亮色)
提取色值代码如下:
Bitmap bm = BitmapFactory.decodeResource(getResources(), item.image);
Palette palette = Palette.generate(bm);
if (palette.getLightVibrantColor() != null) {
name.setBackgroundColor(palette.getLightVibrantColor().getRgb());
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(palette.getLightVibrantColor().getRgb()));
// getSupportActionBar().
}
示例代码
分享到:
相关推荐
android 5.0 发布后, RecyclerView CardView Palette新组建的实例Demo。
android-RecyclerView-Palette-demo android RecyclerView和调色板 android CardView和支持注释 示例代码 示例代码 #关于Devloper Neo( )
提示:eclipse从extras\android\support\v7目录中导入CardView、RecyclerView的会报错如android.support.v7.recyclerview.R$styleable,正确方法是android\m2repository\com\android\support CardView、RecyclerView...
Android支持库演示支持库版本23.0.1 RecyclerView,CardView和Palette示例
RecyclerView是Android 5.0 materials design中的组件之一,相应的还有CardView、Palette等。看名字我们就能看出一点端倪,没错,它主要的特点就是复用。我们知道,Listview中的Adapter中可以实现ViewHolder的复用...
mediarouter,android-support-v7-palette,android-support-v7-preference,android-support-v7-recyclerview、android-support-v13-、android-support-v14-preference、android-support-v17-leanback,android-support...
RecyclerView是Android 5.0 materials design中的组件之一,相应的还有CardView、Palette等。看名字我们就能看出一点端倪,没错,它主要的特点就是复用。我们知道,Listview中的Adapter中可以实现ViewHolder的复用。...
android-support-v4.jar android-support-v7-...v7-cardview.jar v7-gridlayout.jar v7-mediarouter.jar v7-palette.jar v7-recyclerview.jar android-support-v13.jar android-support-v17-leanback.jar
android support v7源代码,注意是java文件,不是class文件,分成appcompat,cardview,gridlayout,mediarouter,palette,preference,recyclerview共7个包
包含V4,V7全部分类appcompat,cardview,recyclerview,gridlayout,preference,palette,mediarouter,史上最全,最便宜
依赖项{项目(':volley')'com.android.support:appcompat-v7:22.0.+''com.android.support:cardview-v7:22.0.+''com.android.support:recyclerview-v7: 22.0.+' 'com.android.support:palette-v7:22.0.+' files...
从andoird 6.0的工程中提取的v7,包括appcompat,cardview ,gridlayout ,mediarouter , palette ,recyclerview
Android support v7工具类 里面包含android-support-v7-appcompat,android-support-v7-cardview,android-support-v7-gridlayout,android-support-v7-mediarouter,android-support-v7-palette,android-support-v7-...
RecyclerView (the new ListView) CardView (custom outline and shadow) Ripple animation (touch feedback) Palette (Incorporate dynamic color) Shared Element Activity Transition Floating Action Button ...
MaterialIconPackTemplate 图标包的模板,按照所有重要原则进行设计。... 查看 #Developer ######基于的 () #使用的开源库Google AppCompat Google CardView Google RecyclerView Google设计库Google Palette 许
截图 使用的库匕首牛油刀改造Google Android 支持库(support-v4、appcompat-v7、cardview-v7、palette-v7、recyclerview-v7)。 毕加索浮动操作按钮实质性进展九老机器人快递员 由开发豪尔赫卡斯蒂略佩雷斯 - jorge...
Android Lollipop之前版本兼容 Material Design 开发工具:Android Studio Android SDK Version:21(android 4.4.4) 依赖包: ... "RecyclerView", "CardView", "Palette"使用待续.... ![image]()