翻看谷歌源码 那些让人感兴趣的东西--L版本引入的CardView
2016-06-01 15:11
501 查看
转载请注明出处:王亟亟的大牛之路
刚才Safari一阵闪退,写了一长串的文章瞬间崩塌,内心崩溃。。。。。。。最近做的都是Web的东西,git又没找到什么想介绍的,就继续翻Google的例子,今天是CardView
官方下载地址:https://developer.android.com/downloads/samples/CardView.zip
因为有墙,我做到自己git里了,传送门:https://github.com/ddwhan0123/BlogSample/tree/master/CardView
附件地址:https://github.com/ddwhan0123/BlogSample/blob/master/CardView/CardView.zip?raw=true
在介绍内容和看效果前,继续安利(每天都在更):https://github.com/ddwhan0123/Useful-Open-Source-Android
Ok,废话不说了,看下运行效果
CardView很好的处理了我们之前用shape和selector做的事。
看下如何使用
XML:
<android.support.v7.widget.CardView android:id="@+id/cardview" android:layout_width="fill_parent" android:layout_height="wrap_content" android:elevation="100dp" card_view:cardBackgroundColor="@color/cardview_initial_background" card_view:cardCornerRadius="8dp" android:layout_marginLeft="@dimen/margin_large" android:layout_marginRight="@dimen/margin_large" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="@dimen/margin_medium" android:text="@string/cardview_contents" /> </android.support.v7.widget.CardView>
他继承于FrameLayout,所以你就直接像ViewGroup一样往里塞东西就好了。
看下Activity部分的代码(详细注解)
/** * Fragment that demonstrates how to use CardView. * Fragment来演示如何使用CardView */ public class CardViewFragment extends Fragment { private static final String TAG = CardViewFragment.class.getSimpleName(); /** * The CardView widget. * CardView控件 */ //@VisibleForTesting CardView mCardView; /** * SeekBar that changes the cornerRadius attribute for the {@link #mCardView} widget. * 用于拖拉圆角的SeekBar */ //@VisibleForTesting SeekBar mRadiusSeekBar; /** * SeekBar that changes the Elevation attribute for the {@link #mCardView} widget. * 用于拖拉阴影的SeekBar */ //@VisibleForTesting SeekBar mElevationSeekBar; /** * Use this factory method to create a new instance of * this fragment using the provided parameters. * * @return A new instance of fragment NotificationFragment. * 跟之前几个例子一样,返回一个CardViewFragment的实例 */ public static CardViewFragment newInstance() { CardViewFragment fragment = new CardViewFragment(); fragment.setRetainInstance(true); return fragment; } public CardViewFragment() { // Required empty public constructor //空构造 } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment //填充布局 return inflater.inflate(R.layout.fragment_card_view, container, false); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); //具体获取对象 mCardView = (CardView) view.findViewById(R.id.cardview); mRadiusSeekBar = (SeekBar) view.findViewById(R.id.cardview_radius_seekbar); mRadiusSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { //拖拽时打印 Log.d(TAG, String.format("SeekBar Radius progress : %d", progress)); mCardView.setRadius(progress); } @Override public void onStartTrackingTouch(SeekBar seekBar) { //Do nothing } @Override public void onStopTrackingTouch(SeekBar seekBar) { //Do nothing } }); mElevationSeekBar = (SeekBar) view.findViewById(R.id.cardview_elevation_seekbar); mElevationSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { Log.d(TAG, String.format("SeekBar Elevation progress : %d", progress)); mCardView.setElevation(progress); } @Override public void onStartTrackingTouch(SeekBar seekBar) { //Do nothing } @Override public void onStopTrackingTouch(SeekBar seekBar) { //Do nothing } }); } }
几乎每一个重要步骤都已经进行了解释。
CardView主要的2个属性如下:
圆角 card_view:cardCornerRadius阴影 card_view:cardElevation
跟麻烦的XML定义圆角/阴影或再见吧!
这里给出传统的实现传送门:
/article/1657229.html
http://www.yiqivr.com/2015/03/03/在Android中实现阴影效果/
这篇比较简单,没什么大营养,但是怕自己忘记还是写了,大家想看什么,想了解什么可以微信我(活人,不是公众号)
相关文章推荐
- iOS开发-NSOperation与GCD区别
- 银联支付-SDK使用、测试流程
- iOS cell 背景颜色总有一款适合你
- Mysql各种类型字段长度
- C# 获取图片某像素点RGB565值
- 汇编Jmp指令总结
- Win8下 OPENCV3.1 配置CUDA7.5+opencv_contrib
- Jacob操作office文档(Word,PPT,Excel)
- Type.GetType()在跨程序集反射时返回null的解决方法
- apache.commons.lang.StringUtils 使用心得
- 第二阶段个人工作总结06
- 表值函数
- 银行不良资产问题日益严重,政府需挑选出来:辛哈
- POJ1270【拓扑排序+DFS】
- SpringMVC项目中使用kaptcha生成验证码
- 如何使用Watson Analytics获取更优质的数据
- sybase服务器启动时报错:无法启动服务器,错误1053:服务没有及时相应启动或控制请求
- springmvc常用注解之@Controller和@RequestMapping
- 好消息! 不用再羡慕Python有jupyter 我R也有Notebook了
- js时钟(二)