04_item简单平移动画

listviewitem动画

我们来搞一种item的动画,

大概就是点击的时候进入还有移出去的动画

我们来创建动画

TranslateAnimation animation=new

TranslateAnimation(8个参数);

8个参数

4个就是x轴的移动效果

4个就是y轴的移动效果

1.fromXType

2.fromXValue

3.toXType

4.toXValue

 

 

先来看第一个fromXType

就是类型,有三种

Animation.ABSOLUTE:绝对位置,没有定位坐标

Animation.RELATIVE_TO_SELF:相对于自身来说

Animation.RELATIVE_TO_PARENT:相对于父控件

一般都是用第二个比较多

 

 

然后是第二个fromXValue

就是从哪里开始移动

0就是从左边,1就是右边,都是整个的,没有填0.5

一半的,一半的话怎么移啊

如果是from0,to1

那就是从屏幕的左边移动到屏幕的右边

 

这里都是相对于我们这个item的左上角来说的,

以从右移动到左边就是

from0,to-1

 

后面Y方向是没有变化的,都填0

所以

right=new TranslateAnimation

(Animation.RELATIVE_TO_SELF,0

Animation.RELATIVE_TO_SELF,1

Animation.RELATIVE_TO_SELF,0

Animation.RELATIVE_TO_SELF,0);

left=new TranslateAnimation

(Animation.RELATIVE_TO_SELF,0

Animation.RELATIVE_TO_SELF,-1

Animation.RELATIVE_TO_SELF,0

Animation.RELATIVE_TO_SELF,0);

 

 

我们还要设置一下动画时间,

不然这个动画一下子就执行完了,几乎看不到效果

right.setDuration(500);

left.setDuration(500);

然后我们让View调用startAnimation()方法.

 

要在RecyclerView的点击事件中呈现平移动画,你可以使用以下步骤: 1. 在RecyclerView的Adapter中,为每个item添加一个点击事件监听器。 2. 在点击事件监听器中,获取被点击的item的位置信息。 3. 创建一个目标View对象,用于展示平移动画效果。 4. 计算目标View的起始位置和终止位置,可以使用item的位置信息和RecyclerView的布局参数来计算。 5. 创建一个平移动画对象,设置起始位置和终止位置,并设置动画持续时间、插值器等属性。 6. 将平移动画对象应用到目标View上,开始执行动画。 下面是一个简单的示例代码: ```kotlin class MyAdapter : RecyclerView.Adapter<MyViewHolder>() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder { // 创建ViewHolder } override fun onBindViewHolder(holder: MyViewHolder, position: Int) { // 绑定数据 holder.itemView.setOnClickListener { // 获取被点击的item的位置信息 val itemPosition = holder.adapterPosition // 创建目标View对象 val targetView = View(holder.itemView.context) // 计算目标View的起始位置和终止位置 val startX = holder.itemView.left.toFloat() val startY = holder.itemView.top.toFloat() val endX = parent.width.toFloat() / 2 - targetView.width / 2 val endY = parent.height.toFloat() / 2 - targetView.height / 2 // 创建平移动画对象 val translateAnim = TranslateAnimation(startX, endX, startY, endY) translateAnim.duration = 500 translateAnim.interpolator = AccelerateDecelerateInterpolator() // 将平移动画对象应用到目标View上,开始执行动画 targetView.startAnimation(translateAnim) } } override fun getItemCount(): Int { // 返回item数量 } } ``` 在上述代码中,我们通过点击事件监听器来获取被点击的item的位置信息,然后创建一个目标View对象,并计算出目标View的起始位置和终止位置。接着,我们通过创建平移动画对象,并将其应用到目标View上,来呈现平移动画效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值