CardView適用於實現卡片式佈局效果的重要控件,由appcompat-v7庫提供,實際上CardView也是一個FrameLayout,只是額外提供了圓角和陰影效果,看上去有立體的感受。通常CardView都用在ListView的item佈局中。android
使用方法很簡單1:在app的build.gradle文件裏面添加依賴庫,注意版本要一致,否則會出錯。app
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.2.0' compile 'com.android.support:cardview-v7:25.2.0' testCompile 'junit:junit:4.12' }
2.而後就能夠直接在xml中使用CardView了,就是這麼簡單,被包含的View就會產生卡片的圓角和陰影的立體效果ide
<android.support.v7.widget.CardView android:id="@+id/cardView" app:cardCornerRadius="8dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="5dp" android:text="棒冰行動,公益傳播設計夏令營" /> </android.support.v7.widget.CardView>
3.最後,在Activity中,屬性能夠動態設置,也能夠在xml裏面靜態設置佈局
public class MainActivity extends AppCompatActivity { private CardView cardView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); cardView = (CardView)findViewById(R.id.cardView); cardView.setRadius(8);//設置圖片圓角的半徑大小 cardView.setCardElevation(8);//設置陰影部分大小 cardView.setContentPadding(5,5,5,5);//設置圖片距離陰影大小 } }
4.最後附上CardView的經常使用屬性,以及CardView的視覺效果gradle
app:cardBackgroundColor這是設置背景顏色
app:cardCornerRadius這是設置圓角大小
app:cardElevation這是設置z軸的陰影
app:cardMaxElevation這是設置z軸的最大高度值
app:cardUseCompatPadding是否使用CompatPadding
app:cardPreventCornerOverlap是否使用PreventCornerOverlap
app:contentPadding 設置內容的padding
app:contentPaddingLeft 設置內容的左padding
app:contentPaddingTop 設置內容的上padding
app:contentPaddingRight 設置內容的右padding
app:contentPaddingBottom 設置內容的底padding