一.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=""
/>