CardView是Google v7包中的一个全新的控件。Google用了一句话来形容它:自带圆角和阴影的Framlayout。在API21以上的版本适配比较出色。
首先要导入CardView
在Android Studio中,把视图切换成Project视图,然后打开项目目录-app-build.gradle,在dependences里添加:
compile 'com.android.support:cardview-v7:25.3.1'
然后在一个xml文件里创建cardview:
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
app:cardBackgroundColor="#FFFFFF"
app:cardCornerRadius="10dp"
app:cardElevation="@dimen/cardview_default_elevation">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp">
<TextView
android:id="@+id/music_title_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="丑八怪"
android:textSize="20sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<TextView
android:id="@+id/singer_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="end"
android:text="music"
android:textColor="#FF5773"
android:textSize="14sp" />
</LinearLayout>
<TextView
android:id="@+id/album_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text=""
android:textColor="#FF5773"
android:textSize="16sp" />
</LinearLayout>
</android.support.v7.widget.CardView>
可以看到布局界面:
attr name="cardBackgroundColor" format="color" 背景颜色
attr name="cardCornerRadius" format="color" 圆角半径
attr name="cardElevation" format="dimension" 海拔(z轴) 阴影
attr name="cardMaxElevation" format="dimension" 最大仰角
attr name="cardPreventCornerOverlap" format="boolean" 是否添加内边距
android:foreground="?attr/selectableItemBackground" 这个属性会在 Lollipop 上自动加上 Ripple 效果(在API21以上有效)