使用Github依赖库实现Android5.0新特性——CardView

之前自己使用support-v7下自带的cardview实现了CardView效果。后来在github中发现了有人写好了很好的库支持,完美实现了CardView的向下兼容。不再需要support-v7,实现起来更为方便。参考的Github的主页为:https://github.com/gabrielemariotti/cardslib  
。感谢博主。具体实现步骤如下:

(1)在Android Studio中新建一个项目,在build.gradle(Module:app)中加入以下代码,注意是在一个Module的gradle中,而不是上方的Project的gradle中。

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.0'

    //Core card library
    compile 'com.github.gabrielemariotti.cards:cardslib-core:2.1.0'

    //Optional for built-in cards
    compile 'com.github.gabrielemariotti.cards:cardslib-cards:2.1.0'

    //Optional for RecyclerView
    compile 'com.github.gabrielemariotti.cards:cardslib-recyclerview:2.1.0'

    //Optional for staggered grid view support
    compile 'com.github.gabrielemariotti.cards:cardslib-extra-staggeredgrid:2.1.0'

    //Optional for drag and drop support
    compile 'com.github.gabrielemariotti.cards:cardslib-extra-dragdrop:2.1.0'

    //Optional for twowayview support (coming soon)
    //compile 'com.github.gabrielemariotti.cards:cardslib-extra-twoway:2.1.0'

}

上述代码就是为项目添加库依赖,就如同从support-v7中添加库依赖一样,添加代码后,从Build-->Rebuild project,重建项目,此时就会从Github上下载依赖库,该过程可能会有点慢,耐心等待。之后就会发现在External Libraries中多出很多文件。

(2)编写xml布局文件如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <it.gmariotti.cardslib.library.view.CardViewNative
        android:id="@+id/carddemo"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="12dp"
        android:layout_marginRight="12dp"
        android:layout_marginTop="12dp">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="这是第一个CardView"
            android:textSize="20sp" />

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:src="@mipmap/image" />

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:hint="输入框:请输入内容" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|right"
            android:text="这是第一个按钮" />
    </it.gmariotti.cardslib.library.view.CardViewNative>

    <it.gmariotti.cardslib.library.view.CardViewNative
        android:id="@+id/carddemo2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="12dp"
        android:layout_marginRight="12dp"
        android:layout_marginTop="12dp">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="这是第二个CardView"
            android:textSize="20sp" />

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:src="@mipmap/image2" />

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:hint="输入框:请输入内容" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|right"
            android:text="这是第二个按钮" />
    </it.gmariotti.cardslib.library.view.CardViewNative>

</LinearLayout>

(3)编写java代码:

public class MainActivity extends Activity {

    private Context context;//上下文;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        this.context = this;

        Card card = new Card(context);//Create a Card,这就是一张卡片,到时候把该卡片放到CardView空间中;
        CardHeader header = new CardHeader(context);//Create a CardHeader;如果不使用Header标题,也可以注释该代码;
        card.addCardHeader(header);//Add Header to card;增加标题,可注释;

        //Set card in the cardView
        CardViewNative cardView = (CardViewNative) findViewById(R.id.carddemo);
        CardViewNative cardView2 = (CardViewNative) findViewById(R.id.carddemo2);
        cardView.setCard(card);//绑定;
        cardView2.setCard(card);

    }

}

(4)然后运行代码,就可以在界面上实现多个卡片Card的效果。使用非常灵活,可以分别自由进行编辑:

本案例只是做一个演示,整体还是比较简陋的,后期优美的布局都可以通过卡片来实现。再次申明代码很多引用:https://github.com/gabrielemariotti/cardslib 。感谢Gabriele Mariotti.

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-10 10:48:11

使用Github依赖库实现Android5.0新特性——CardView的相关文章

android 5.0新特性CardView教程

CardView 是android5.0新加入的特性,大家先别着急,由于谷歌出了cardview的兼容包,也就是android.support.v7.widget.CardView包,所以在5.0以下的系统也可以运行这个效果.什么是CardView ?就是在View的外面加上一个类似如卡片的阴影,下面放代码. <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_c

Android5.0 新特性学习总结

参考文章: 极客学院 –Material Design 中文版图文教程 几行代码,让你的 APP 变得花俏-Android Design Support Library 代码实验 material design 的android开源代码整理 低版本android上实现Material design应用 Android5.0版本,推出了Material Design的概念,这是在设计上Android的又一大突破.对应的程序实现上就有如 Theme.Material.Light. Theme.Mat

Android5.0新特性——兼容性(support)

兼容性 虽然Material Design新增了许多新特性,但是并不是所有新内容对对下保持了兼容. 使用v7包 v7 support libraries r21 及更高版本包含了以下Material Design特性: 使用Theme.AppCompat主题包含调色板主体属性,可以对应用的主题做统一的配色,但是不包括状态栏和底部操作栏 RecyclerView和CardView被独立出来,只要引入jar包,即可适配7以上的所有版本. Palette类用于从图片提取主色调 系统组件 Theme.A

Android5.0新特性:RecyclerView实现上拉加载更多

RecyclerView是Android5.0以后推出的新控件,相比于ListView可定制性更大,大有取代ListView之势.下面这篇博客主要来实现RecyclerView的上拉加载更多功能. 基本思路是让RecyclerView的Adapter加载两种布局,第一个布局来显示主界面,第二个布局来显示上拉加载时的提示信息,让RecyclerView监听是否滑动到最后一个item,如果是,则调用上拉刷新的逻辑,拉取远程数据,并显示第二个布局.等加载完毕时,刷新 Adapter,并隐藏第二个布局.

Kotlin实例----android5.0新特性之palette

一.Palette的使用 使用Palette可以让我们从一张图片中拾取颜色,将拾取到的颜色赋予ActionBar,StatusBar以及UI背景色可以让界面色调实现统一或者加载不同图片时同步变化色调 1.使用Palette需要添加以下依赖: implementation 'com.android.support:palette-v7:26.0.2'(Android Studio 3.0 Beta 5) 2.ImageView 中获取Bitmap对象(或者其他BItmap对象) bitmap =

Android5.0新特性——阴影和剪裁(shadow)

阴影和剪裁 View的z属性 Material Design建议为了凸显布局的层次,建议使用阴影效果,并且Android L为了简化大家的工作,对View进行了扩展,能使大家非常方便的创建阴影效果: 给View添加了一个新的属性:Z 属性,用于描述视图距离它父视图的高度: 在5.0之前,我们的视图都是二维的,只有x轴和y轴,现在,android新增了z轴.x轴和y轴描述了一个view的大小和位置,而z轴描述了view在父视图上抬起的视觉,体现效果就是阴影.下图的两个view的z属性分别为2dp和

Android5.0新特性——图片和颜色(drawable)

图片和颜色 tint属性 tint属性一个颜色值,可以对图片做颜色渲染,我们可以给view的背景设置tint色值,给ImageView的图片设置tint色值,也可以给任意Drawable或者NinePatchDrawable设置tint色值. 在应用的主题中也可以通过设置 android:tint 来给主题设置统一的颜色渲染. tint的渲染模式有总共有16种,xml文件中可以使用6种,代码中我们可以设置16种,渲染模式决定了渲染颜色和原图颜色的取舍和合成规则: PorterDuff.Mode.

Android5.0新特性——新增的Widget(Widget)

新增的Widget RecyclerView RecyclerView是ListView的升级版,它具备了更好的性能,且更容易使用.和ListView一样,RecyclerView是用来显示大量数据的容器,并通过复用有限数量的View,来提高滚动时的性能.当你的视图上的元素经常动态的且有规律的改变时候,可以使用RecyclerView控件. 与ListView不同的是RecyclerView现在不再负责布局,只专注于复用机制,布局交由LayoutManager来管理. RecyclerView仍

一个Activity掌握Android5.0新控件 (转)

原文地址:http://blog.csdn.net/lavor_zl/article/details/51279386 谷歌在推出Android5.0的同时推出了一些新控件,Android5.0中最常用的新控件有下面5种. 1. CardView(卡片视图) CardView顾名思义是卡片视图,它继承FrameLayout.它是一个带圆角的背景和阴影FrameLayout.CardView被包装为一种布局,并且经常在ListView和RecyclerView的Item布局中,作为容器使用. Ca