一.cardview自己好像從來都沒用過,今天偶然相遇,記錄一下使用過程(很強大);
1.先說都有什麼用處?根據名字也知道可以用來製作卡片效果,所以很多時候配合recyclerview或者listview一起使用。不過我倒是覺得可以用來製作圓形頭像或者圓角頭像,很簡單的。
2.用法:由於cardview是framelayout的子view,因此可以理解爲就是framelayout,是不是就很簡單了。
3.佈局中的使用
<!--設置點擊後出現水波紋效果-->
<!--android:foreground="?android:attr/selectableItemBackground"-->
<!--按下有z軸的動畫效果-->
<!--android:stateListAnimator="@drawable/lift_on_touch"-->
<!--控制警告,設置目標版本-->
<!--tools:targetApi="lollipop"-->
<android.support.v7.widget.CardView
android:id="@+id/card_view"
android:layout_width="300dp"
android:layout_height="300dp"
android:clickable="true"
android:foreground="?android:attr/selectableItemBackground"
android:stateListAnimator="@drawable/lift_on_touch"
app:cardPreventCornerOverlap="false"
tools:targetApi="lollipop">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@drawable/pic3" />
</android.support.v7.widget.CardView>
4.其他屬性方法在代碼中解釋如下:
mCardView = (CardView) findViewById(R.id.card_view);
//設置圓角的半徑,但是當圓角半徑大於邊長的一半的時候,卻呈現出非常奇特的現象,說明他的圓角中心並不在自己的中心
mCardView.setRadius(90);
//設置背景顏色 重載方法爲顏色集合,說明可以設置類似selector的效果
mCardView.setCardBackgroundColor(getResources().getColor(R.color.error_color));
//設置陰影的大小
mCardView.setCardElevation(50);
//設置cardview在不同的api中有相同的padding尺寸,否則在Android L和向下版本中尺寸大小會不一樣
mCardView.setUseCompatPadding(true);
//設置cardview與子view的內邊距 setpadding則無效果了
mCardView.setContentPadding(30,30,30,30);
//設置false則子view填充滿,否則則子view大小會變小,大小爲尺寸減去圓角尺寸
mCardView.setPreventCornerOverlap(false);
完了,效果很強大,自行補腦。。。。
二.floatactionbutton控件學習記錄
1.可以用來做什麼:可以製作類似浮標的效果,當然配合coordiantorlayout使用最合適了
2.用法:很簡單,所有的屬性都做了註釋,其他繼承於imageview的不做研究
<!--懸掛在哪個view上面,這個屬性只用在coordiantorlayout中才有用-->
<!--app:layout_anchor="@id/img"-->
<!--懸掛的相對位置,方式,以中心點爲基準-->
<!--app:layout_anchorGravity="bottom|right"-->
<!--由於父親是imageview,因此用法也一樣-->
<!--android:src="@drawable/pic3"-->
<!--設置背景顏色,默認爲系統theme中的顏色-->
<!--app:backgroundTint="#77098765"-->
<!--設置混合模式,沒用試出來什麼效果-->
<!--app:backgroundTintMode="src_over"-->
<!--該屬性尤爲重要。假設不設置0dp。那麼在4.1的sdk上FAB會顯示爲正方形。並且在5.0以後的sdk沒有陰影效果。所以設置爲borderWidth="0dp"-->
<!--app:borderWidth="0dp"-->
<!--設置默認狀態下陰影的大小-->
<!--app:elevation="100dp"-->
<!--設置按下後陰影的大小-->
<!--app:pressedTranslationZ="10dp"-->
<!--設置FAB的大小,默認爲normal,還有mini尺寸-->
<!--app:fabSize="mini"-->
<!--設置點擊時的北京顏色-->
<!--app:rippleColor="#FFCA2121"-->
<!--行爲,只有配合CoordinatorLayout使用纔有效,可以自定義-->
<!--app:layout_behavior=""-->
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:scaleType="fitXY"
android:src="@drawable/pic3"
app:backgroundTint="#098765"
app:backgroundTintMode="src_over"
app:borderWidth="0dp"
app:elevation="2dp"
app:fabSize="normal"
app:layout_anchor="@id/img"
app:layout_anchorGravity="bottom|right"
app:pressedTranslationZ="10dp"
app:rippleColor="#FFCA2121"
app:layout_behavior=""
/>