文章转自http://blog.csdn.NET/aqi00/article/details/59108336

Android自5.0后增加了不少新控件,帮助开发者实现了更酷更炫的UI效果。可是对于初学者来说,这些新控件的用法不像老控件那么简单,网上相关的使用介绍也不如老控件那样丰富,种种情况无疑加大了我们学习这些新控件的难度。为此,博主初步整理了android在5.0和6.0之后的新增控件,及其对应的说明博文,给大家提供一个可资学习和借鉴的索引。



下面是新增控件的索引表格:
兼容包 名称 控件 引入版本
内核 水波图形 RippleDrawable Android 5.0
矢量图形 VectorDrawable Android 5.0
矢量动画 AnimatedVectorDrawable Android 5.0
矢量动画监听器 AnimationCallback Android 6.0
媒体投影管理器 MediaProjectionManager Android 5.0
摄像头二代camera2 CameraManager Android 5.0
CameraDevice Android 5.0
CameraCaptureSession Android 5.0
电话管理器增加双卡双待 TelephonyManager Android 5.0
PDF文件渲染器 PdfRenderer Android 5.0
任务调度器 JobScheduler Android 5.0
任务服务 JobService Android 5.0
v4 下拉刷新布局 SwipeRefreshLayout Android 5.0
抽屉布局 DrawerLayout Android 5.0
滑动面板布局 SlidingPaneLayout Android 5.0
嵌套滚动视图 NestedScrollView Android 5.0
appcompat-v7 工具栏 Toolbar Android 5.0
recyclerview-v7 循环视图 RecyclerView Android 5.0
线性布局管理器 LinearLayoutManager Android 5.0
网格布局管理器 GridLayoutManager Android 5.0
瀑布流网格布局管理器 StaggeredGridLayoutManager Android 5.0
cardview-v7 卡片视图 CardView Android 5.0
palette-v7 调色板 Palette Android 5.0
design 提示条 Snackbar Android 5.0
导航视图 NavigationView Android 5.0
协调布局 CoordinatorLayout Android 5.0
悬浮按钮 FloatingActionButton Android 5.0
底部弹窗 BottomSheetBehavior Android 6.0
应用栏布局 AppBarLayout Android 5.0
可折叠工具栏布局 CollapsingToolbarLayout Android 5.0
侧滑删除 SwipeDismissBehavior Android 5.0
标签布局 TabLayout Android 5.0
文本输入布局 TextInputLayout Android 5.0
文本输入编辑框 TextInputEditText Android 6.0


以上的新控件,在项目中使用的时候,可分为三大类:

1、第一类是内核提供的控件,位于SDK的android.jar中。
这个与系统版本有关,每个版本的android.jar是固定的,有在该内核中定义的控件才能正常调用,没在内核中定义的控件在运行时会扔出类找不到的异常。比如水波图形RippleDrawable和矢量图形VectorDrawable,这两个控件在Android5.0之后的系统内核中提供,所以只有系统版本不低于5.0的手机才能使用它们,运行4.*系统的手机是无法正常调用这两个控件的。

2、第二类是v4兼容库提供的控件,位于SDK的android-support-v4.jar中。
v4库默认会被编译进App的安装包,所以它不需要系统内核支持,可直接运行在4.0之后的所有系统上,并且App工程无需手工导入v4库。使用v4控件唯一需要注意的地方,是布局文件中要引用完整路径的控件名称,如抽屉布局android.support.v4.widget.DrawerLayout、下拉刷新布局android.support.v4.widget.SwipeRefreshLayout等等。

3、第三类是v7兼容库和design库,它们有各自的库工程,开发者要在App工程中手工导入用到的兼容库。
v7与design库导入App工程后,编译出来的App即可兼容4.*的系统。使用v7与design库的控件,类似于使用自定义控件,不但要在布局文件中引用完整路径的控件名称,还要在根布局声明命名空间(即添加属性xmlns:app="http://schemas.android.com/apk/res-auto"),然后方可使用这些控件的自定义属性。这部分控件数量最多,实现的界面特效最丰富,而且互相之间存在依赖关系,如design库依赖于appcompat-v7库,部分design控件如NavigationView还依赖于recyclerview-v7库,所以若要正确使用design库的控件,往往得同时导入好几个相关的兼容库。


Android5.0和6.0之后补充了这么多新控件,自然有部分老控件变过时了,下面就列举部分新旧控件的替代关系:
Toolbar :替代ActionBar
RecyclerView :替代ListView和GridView
NestedScrollView :替代ScrollView
Snackbar :替代Toast
FloatingActionButton :替代ImageButton
TextInputEditText :替代EditText
camera2家族:替代Camera




---------------------------------------------------------------------------------------------------------------------------------------------




文章转载自  http://blog.csdn.net/qq379454816/article/details/51483388


5.0中新添加了很多控件,为了便于学习和总结这里我给大家归纳了一下:

使用方式:builde.gride文件中添加下面的依赖,

compile 'com.Android.support:design:22.2.0'   //可修改版本号为对应的buildToolsVersion版本

然后就可以使用所有的控件了,如下:

1、android.support.v7.widget.CardView 

简介:该控件是一个卡片布局,继承FrameLayout。

CardView常用属性:
card_view:cardElevation 阴影的大小
card_view:cardMaxElevation 阴影最大高度
card_view:cardBackgroundColor 卡片的背景色
card_view:cardCornerRadius 卡片的圆角大小
card_view:contentPadding 卡片内容于边距的间隔
card_view:contentPaddingBottom
card_view:contentPaddingTop
card_view:contentPaddingLeft
card_view:contentPaddingRight
card_view:contentPaddingStart
card_view:contentPaddingEnd
card_view:cardUseCompatPadding 设置内边距,V21+的版本和之前的版本仍旧具有一样的计算方式
card_view:cardPreventConrerOverlap 在V20和之前的版本中添加内边距,这个属性为了防止内容和边角的重叠

扫描关注我的微信公众号:



效果图:


2、android.support.v7.widget.RecyclerView

简介:该控件用来替代ListView,具有高度的松耦合性,主要不同就是省去了我们自己去创建ViewHolder类,大概使用步骤如下:

[java]  view plain  copy  print ?
  1. verify_rv = (RecyclerView) findViewById(R.id.verify_rv);  
  2. 局管理器,有水平和垂直两种,总共有下面3种,另外两种:GridLayoutManager 网格布局管理器,StaggeredGridLayoutManager 瀑布就式布局管理器  
  3. verify_rv.setLayoutManager(new LinearLayoutManager(this));  
  4.  保持固定的大小,该信息被用于自身的优化  
  5. verify_rv.setHasFixedSize(true);  
  6. 配器  
  7. adapter = new OrderRvAdapter(this);  
  8. erify_rv.setAdapter(adapter);  
效果图:



3、android.support.design.widget.FloatingActionButton

简介:用来在界面上显示一个悬浮的按钮,有大小两种尺寸。

效果图:


4、android.support.design.widget.TextInputLayout

简介:一般嵌套一个EditText,用来在输入内容后提示内容显示在外面,还具有空校验。

效果图:


5、android.support.design.widget.TabLayout

简介:用来和Viewpager结合使用来作为Viewpager的选项卡。

[java]  view plain  copy  print ?
  1. "http://schemas.android.com/apk/res/android"    
  2.     android:layout_width="match_parent"    
  3.     android:layout_height="match_parent"    
  4.     xmlns:app="http://schemas.android.com/apk/res-auto"    
  5.     android:orientation="vertical">    
  6.     
  7.     
  8.         android:id="@+id/tab_FindFragment_title"    
  9.         android:layout_width="match_parent"    
  10.         android:layout_height="wrap_content"    
  11.         android:background="@color/titleBlue"    
  12.         app:tabIndicatorColor="@color/white"    
  13.         app:tabSelectedTextColor="@color/gray"    
  14.         app:tabTextColor="@color/white"    
  15.         />    
  16.     
  17.     
  18.     
  19.         android:id="@+id/vp_FindFragment_pager"    
  20.         android:layout_width="fill_parent"    
  21.         android:layout_height="0dp"    
  22.         android:layout_weight="1"    
  23.         />    
  24.     
  25.     
然后在viewpager设置adapter之后调用下面代码:  tab_FindFragment_title.setupWithViewPager(vp_FindFragment_pager); 就可以实现和viewpager滑动实现联动效果,选项卡内容在viewpager的adapter的gettitle方法中设置(选项卡可以动也可以不动)。

效果图:

6、android.support.design.widget.NavigationView

简介:在Material Design中,Navigation drawer导航抽屉,被设计用于应用导航,提供了一种通用的导航方式,体现了设计的一致性。
而NavigationView的典型用途就是配合之前v4包的DrawerLayout,作为其中的Drawer部分,即导航菜单的本体部分。NavigationView是一个导航菜单框架,使用menu资源填充数据,使我们可以更简单高效的实现导航菜单。它提供了不错的默认样式、选中项高亮、分组单选、分组子标题、以及可选的Header。
使用方式:

[java]  view plain  copy  print ?
  1.     android:id="@+id/drawer_layout"  
  2.     android:layout_width="match_parent"  
  3.     android:layout_height="match_parent">  
  4.   
  5.      
  6.     
  7.         android:id="@+id/content_layout"  
  8.         android:layout_width="match_parent"  
  9.         android:layout_height="match_parent"/>  
  10.   
  11.      
  12.     
  13.         android:id="@+id/navigation"  
  14.         android:layout_width="240dp"  
  15.         android:layout_height="match_parent"  
  16.         android:layout_gravity="start"  
  17.         app:headerLayout="@layout/drawer_header"  
  18.         app:menu="@menu/drawer"/>  
  19.   

代码中:

[java]  view plain  copy  print ?
  1. mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {  
  2.             @Override  
  3.             public boolean onNavigationItemSelected(MenuItem menuItem) {  
  4.                 switch (menuItem.getItemId())   
  5.                 {  
  6.                     case R.id.item_one:  
  7.                         getSupportFragmentManager().beginTransaction().replace(R.id.frame_content,new FragmentOne()).commit();  
  8.                         mToolbar.setTitle("我的动态");  
  9.                         break;  
  10.                     case R.id.item_two:  
  11.                         getSupportFragmentManager().beginTransaction().replace(R.id.frame_content,new FragmentTwo()).commit();  
  12.                         mToolbar.setTitle("我的留言");  
  13.                         break;  
  14.                     case R.id.item_three:  
  15.                         getSupportFragmentManager().beginTransaction().replace(R.id.frame_content,new FragmentThree()).commit();  
  16.                         mToolbar.setTitle("附近的人");  
  17.                         break;  
  18.                 }  
  19.                 menuItem.setChecked(true);//点击了把它设为选中状态  
  20.                 mDrawerLayout.closeDrawers();//关闭抽屉  
  21.                 return true;  
  22.             }  
  23.         });  
  24.     }  
效果图(布局文件中添加的抽屉内容,在app标签中):



7、android.support.design.widget.CoordinatorLayout

简介:该控件和新发布的这些控件联合使用,只要把他作为一个容器类使用就好了,一边用作跟布局。


8、android.support.design.widget.AppBarLayout

简介:用来和toolbar联合使用,达到Material Design效果。

效果图:


9、android.support.design.widget.CollapsingToolbarLayout

简介:CollapsingToolbarLayout作用是提供了一个可以折叠的Toolbar,它继承至FrameLayout,给它设置layout_scrollFlags,它可以控制包含在CollapsingToolbarLayout中的控件(如:ImageView、Toolbar)在响应layout_behavior事件时作出相应的scrollFlags滚动事件(移除屏幕或固定在屏幕顶端)。

效果图:


10、toolBar

简介:用来取代actionbar,效果图入appbarLayout上面的效果图。

下面是几个新出来的类:

1、android.support.design.widget.Snackbar    其和Toast是类似的,弹出一个提示框,不需要再布局文件中使用

效果图:


2、Palette 颜色选择器,从bitmap中提取颜色值

简介:从一张图片中提取出关键的颜色,可以把该颜色值设置到别的控件上面。

效果图:


更多相关文章

  1. Android程序开发学习笔记系列――基础篇(附源码)
  2. Android(安卓)随笔——android:clipChildren="false"属性
  3. Android实现自定义测滑栏
  4. 简单的Android(安卓)XML布局使用
  5. Android控件组合应用一
  6. Android(安卓)Butterknife 框架源码解析(1)——ButterKnife的使用
  7. 38、Android编写应用-使用布局编辑器Layout Editor构建界面
  8. 边做iOS边学Android(二):认识几个常用的控件
  9. 一起来学习Android自定义控件1

随机推荐

  1. android 单元测试 附源码
  2. 书籍推荐下载
  3. 完美解决Android Studio在写XML布局的时
  4. [Android]Android(安卓)Sqlite3 常用命令
  5. 关于Android在非UI线程更新UI的问题。
  6. android用户界面之菜单(Menu)教程实例汇
  7. Android项目---listview的那些属性,常用却
  8. 【Android】进程间通信IPC——Binder
  9. android怎样实现关闭系统自动旋转屏幕时
  10. android adb和串口调试.