Android CardView使用和导入出错问题
第一部分:导入Android CardView出错的问题。
Android CardView是Android在support.v7包里面的一个view组件,同一时候另一个RecyclerView。
位置在Android的SDK包中,文件夹:…\android-sdk-windows\extras\android\support\v7,如图:
假设在自己的项目中使用RecyclerView,则直接将…\android-sdk-windows\extras\android\support\v7\recyclerview\libs包下的android-support-v7-recyclerview.jar拷贝到自己项目的libs文件夹下就可以。
但CardView不能这样。假设只像RecyclerView一样复制一个jar包,则会出现错误,无法载入CardView。
正确使用Android CardView的方法是:
(1)先将…\android-sdk-windows\extras\android\support\v7文件夹下的整个cardview文件夹作为一个Android lib库,先导入到Eclipse中。如图:
导入到Eclipse后,勾选Is Library,如图:
(2)然后再在自己的项目Add这个cardview库,如图:
第二部分,Android CardView的使用。
正确导入support.v7包中的CardView后就能够直接使用它了。Android CardView的使用和其它Android View类似,在布局文件里直接使用,card_view.xml:
<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schemas.android.com/apk/res-auto" android:id="@+id/card_view" android:layout_width="match_parent" android:layout_height="match_parent" card_view:cardBackgroundColor="@android:color/white" card_view:cardCornerRadius="15dp" card_view:cardElevation="20dp" > <TextView android:id="@+id/text" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" android:gravity="center" /> </android.support.v7.widget.CardView>
当中,
card_view:cardCornerRadius定义圆角大小。
card_view:cardElevation定义阴影大小。
測试的MainActivity.java :
package zhangphil.cards; import android.app.ListActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends ListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ListView lv = this.getListView(); String[] data = new String[50]; for (int i = 0; i < data.length; i++) { data[i] = "数据" + i; } ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.card_view, R.id.text, data); lv.setAdapter(adapter); } }
执行结果如图: