Android5.0(lollipop)新特性介绍(一)

转载 2015年11月19日 15:19:56

今年6月的Google I/O大会上,Android L的初次见面我相信让会让很多android粉丝有些小激动和小期待,当然作为开发者的我来说,激动不言而喻,毕竟这是自08年以来改变最大的一个版本。新的设计语言(Material Design),5000多个新增api。废话不多说,今天要说的基本都是在Android5.0中很常见,也算是对自己学习的一种记录。

1.CardView

顾名思义,CardView 卡片视图,继承自framelayout,可以通过设置圆角以及阴影来展示带有像卡片一样的效果

用法:在布局声明CardView(注意:需要引入android-support-v7-cardview.jar) 

<span style="font-size:14px;"><android.support.v7.widget.CardView
  android:id="@+id/cardview"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:elevation="100dp"
  card_view:cardBackgroundColor="@color/cardview_initial_background"
  card_view:cardCornerRadius="8dp"
  android:layout_marginLeft="@dimen/margin_large"
  android:layout_marginRight="@dimen/margin_large">
  <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_margin="@dimen/margin_medium"
      android:text="@string/cardview_contents"/>
</android.support.v7.widget.CardView></span>

在Activity中通过调用mCardView.setRadius(progress)与mCardView.setElevation(progress)方法来分别设置CardView的圆角和阴影。

2.RecyclerView

RecyclerView的出现可以替代ListView和GridView,它标准化了ViewHolder,之前我们在写ListView的Adapter时需要自定义ViewHolder来提升ListView速度。使用RecyclerView的时候必须要设置LayoutManager,它会通知系统以什么样的布局来展示RecyclerView,目前系统提供了2种LayoutManager,LinearLayoutManager和GridLayoutManager对应着线性和格子,当然了也可以自定义LayoutManager来满足各种需求

用法:布局文件中声明RecyclerView(注意:需要引入android-support-v7-recyclerview.jar)

<span style="font-size:14px;"><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical">
  <RadioGroup
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:orientation="horizontal"
    android:checkedButton="@+id/linear_layout_rb">
    <RadioButton android:id="@+id/linear_layout_rb"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/linear_layout_manager"/>
    <RadioButton android:id="@+id/grid_layout_rb"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/grid_layout_manager"/>
  </RadioGroup>
  <android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
</LinearLayout></span>

在Activity中调用如下代码

<span style="font-size:14px;">mRecyclerView = (RecyclerView) rootView.findViewById(R.id.recyclerView);
//类似listview
mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
//类似grdiview
mRecyclerView.setLayoutManager(new GridLayoutManager(getActivity(), 3));
mAdapter = new CustomAdapter(mDataset);
// Set CustomAdapter as the adapter for RecyclerView.
mRecyclerView.setAdapter(mAdapter);</span>

CustomAdapter代码如下

<span style="font-size:14px;">public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.ViewHolder> {
  private static final String TAG = "CustomAdapter";
  private String[] mDataSet;
  /**
   * Provide a reference to the type of views that you are using (custom ViewHolder)
   */
  public static class ViewHolder extends RecyclerView.ViewHolder {
    private final TextView textView;
    public ViewHolder(View v) {
      super(v);
      // Define click listener for the ViewHolder's View.
      v.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        }
      });
      textView = (TextView) v.findViewById(R.id.textView);
    }
    public TextView getTextView() {
      return textView;
    }
  }
  /**
   * Initialize the dataset of the Adapter.
   *
   * @param dataSet String[] containing the data to populate views to be used by RecyclerView.
   */
  public CustomAdapter(String[] dataSet) {
    mDataSet = dataSet;
  }
  // Create new views (invoked by the layout manager)
  @Override
  public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
    // Create a new view.
    View v = LayoutInflater.from(viewGroup.getContext())
        .inflate(R.layout.text_row_item, viewGroup, false);
    return new ViewHolder(v);
  }
  // Replace the contents of a view (invoked by the layout manager)
  @Override
  public void onBindViewHolder(ViewHolder viewHolder, final int position) {
    // Get element from your dataset at this position and replace the contents of the view
    // with that element
    viewHolder.getTextView().setText(mDataSet[position]);
    viewHolder.getTextView().setPadding(0, position, 0, 0);
  }
  // Return the size of your dataset (invoked by the layout manager)
  @Override
  public int getItemCount() {
    return mDataSet.length;
  }
}</span>

Android5.0(lollipop)新特性介绍(一)

今年6月的Google I/O大会上,Android L的初次见面我相信让会让很多android粉丝有些小激动和小期待,当然作为开发者的我来说,激动不言而喻,毕竟这是自08年以来改变最大的一个版本。新...
  • songzeyang99
  • songzeyang99
  • 2014年12月18日 14:13
  • 9514

Android5.0新特性(Lollipop)

Android移动开发的小伙伴可以科普下,致敬每个奋斗于编程事业的小伙伴们。
  • mengguzhou517
  • mengguzhou517
  • 2016年09月22日 13:11
  • 130

Android Lollipop(5.0) 一些新特性

Android 5.0系统新特性: 1、Android  Material Design  概念:融合卡片式,立体式的设计风格,强调层次感,动画,阴影等元素  Android UI样式风格发展:...
  • u011730649
  • u011730649
  • 2017年02月09日 15:15
  • 215

Android5.0,6.0,7.0新特性整理

背景 概述内容 Android 50新特性 1 Material Design 2支持多种设备 3全新通知中心设计 4支持64位ART虚拟机 5 Project Volta电池续航改进计划 6全新的最...
  • haovip123
  • haovip123
  • 2017年01月19日 20:18
  • 6847

android 5.0+6.0新特性

5.android5.0介绍
  • u012360634
  • u012360634
  • 2015年12月25日 21:03
  • 8180

Android 5.0 API新增和改进

转自Android官网:点击打开链接 API 级别:21 Android 5.0 (LOLLIPOP) 为用户和应用开发者提供了新的功能。本文档介绍了最值得注意的新 API。 有关新平台功能的扼...
  • lwyygydx
  • lwyygydx
  • 2014年12月11日 18:29
  • 51185

Android 5.0(包含5.0以下版本) 获取栈顶应用程序包名

在此Android 5.0以下的版本就不说了,网上搜索基本全是实现方法,使用getRunningTask方法就可以获取到 我这里着重说下Android5.0以上版本获取栈顶包名的方法: 方法一: 注...
  • chaozhung
  • chaozhung
  • 2015年12月28日 09:35
  • 3706

Android5.0 6.0 7.0新特性

Android5.0新特性: 1.代号为Lollipop(棒棒糖),采用了Google最新推行的Material Design设计语言,用户切换activity时,有无缝的过度位移动画. ...
  • MonaZhou
  • MonaZhou
  • 2017年01月05日 13:46
  • 2976

安卓5.0+新特性 简单使用

android 5.0+安卓运行时权限管理当targetSdkVersion版本低于23时,程序可以再AndroidManifest.xml中配置所需权限,并在程序中直接使用权限。当sdk版本在23...
  • gangoogle
  • gangoogle
  • 2016年03月22日 11:35
  • 2153

Android5.0新特性-Material Design

概述2014年,Google携Android5.X重装归来,全新的UI设计和更加优化的性能,令开发者眼前一亮安装和配置Android5.0开发环境开发Android还得靠AS,下载地址 http:/...
  • yangshangwei
  • yangshangwei
  • 2016年03月29日 20:48
  • 4501
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android5.0(lollipop)新特性介绍(一)
举报原因:
原因补充:

(最多只允许输入30个字)