开辟者大年夜赛路演 | 12月16日,技巧立异,北京不见不散
一、概述
貌似前段时光刷知乎看到的一种异常有特点的告白展示方法,即在列表页,某一个Item显示背后部分告白图,跟着列表滚动,会逐渐展示全部图片。
完全代码:
刚看到的时刻就镫实现一哈,一向比较懒,"大众,"号后台也有人问若何实现,今天来给大年夜家道解下,当然了,今朝一些自定义View已经不算难题,所以本文的讲解会做一些实现思路引导,信赖不会是那么逝世板的文┞仿,欲望对大年夜家有必定的赞助。
恩,如今知乎上已经找不到该效不雅了,试了多个汗青版本也没找到,那只能贴实现的效不雅图了~
效不雅图如下:


2选1,你爱好哪个效不雅图呢~~
二、思路
实如今列表中展示某张图片:
- 往上滚动:在图片刚出现时展示顶清晨分,跟着滚动部分展示全部
- 往下滚动:在图片刚出现时展示底清晨分,跟着滚动部分展示全部
换句话说,我们须要在列表滚动时,改变图片显示的部分。
结合一下,就是,监听列表的滚动dy,传给我们的图片控件,设置translate,然后绘制。
到这里,思路异常清楚,这个器械肯定能做了。
初步筹划:自定义一个View,本身去绘制bitmap,对外裸露setDy(dy),然后根据dy做canvas偏移重绘即可。
那么在绘制的时刻,就R单了,先translate dy距离,然后绘制即可。
有了初步筹划,根本不慌了,那么再想想?
可否应用已有的控件,比如ImageView呢?
肯定可以,如许省去了我们去声明一个接收图片的属性,我们编写一个子类,依然是经由过程设置src去应用。
仅仅是设置数据了,Adapter这里用了
那持续ImageView实现一波再说。
三、实现
起首我们先写个假的列表,鉴于RV用的越来越多,就用RecyclerView吧。
构造
主构造文件,一个RecyclerView即可:
- <?xml version="1.0" encoding="utf-8"?>
- <android.support.v7.widget.RecyclerView
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:id="@+id/id_recyclerview"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- />
item构造文件:
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:background="@drawable/item_bg"
- android:gravity="center">
- <com.imooc.rvimageads.AdImageViewVersion1
- android:id="@+id/id_iv_ad"
- android:layout_width="match_parent"
- android:layout_height="180dp"
- android:scaleType="matrix"
- android:src=http://mobile.51cto.com/
推荐阅读
开辟者大年夜赛路演 | 12月16日,技巧立异,北京不见不散 作为一个生活在移动互联网时代的技巧宅,饱受骚扰短信之苦,但没有一个简单的又不消上传本身短信的过滤应用。于是我大年夜本身收到>>>详细阅读
地址:http://www.17bianji.com/lsqh/39523.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示