android - 淡入淡出在 MotionLayout 中不起作用
问题描述
我正在尝试使用 alpha 和 motionLayout 制作淡入、淡出的效果,但它似乎不起作用。
这是我要淡出的 imageView。
<ImageView
android:id="@+id/tijeras"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="8dp"
android:contentDescription="@string/tijeras"
android:src="@drawable/ic_tijeras" />
</android.support.constraint.motion.MotionLayout>
这是运动文件
<?xml version="1.0" encoding="utf-8"?>
<MotionScene xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<Transition
app:duration="2000"
app:constraintSetStart="@+id/start"
app:constraintSetEnd="@+id/end">
<KeyFrameSet>
<KeyAttribute
app:framePosition="0"
app:motionTarget="@id/tijeras"
android:alpha="1.0"/>
<KeyAttribute
app:framePosition="50"
app:motionTarget="@id/tijeras"
android:alpha="0.0"/>
</KeyFrameSet>
</Transition>
<ConstraintSet android:id="@+id/start">
<Constraint android:id="@+id/tijeras"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alpha="1.0"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/logo"/>
</ConstraintSet>
<ConstraintSet android:id="@+id/end">
<Constraint android:id="@+id/tijeras"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alpha="1.0"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/logo"/>
</ConstraintSet>
</MotionScene>
我可以看到图像,但它没有做 alpha 输入和输出。任何想法?我需要触发它才能启动吗?
解决方案
看起来您android:alpha="1.0"
在 start 和 end 上都将 alpha 设置为 1.0 ConstraintSet
。
CustomAttribute
您可以通过从 中删除 alphaKeyAttribute
并将以下内容放在Transition
元素下方,更轻松地将 alpha 设置为使用 a 更新
<ConstraintSet android:id="@+id/start">
<Constraint android:id="@+id/tijeras"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/logo">
<CustomAttribute
motion:attributeName="alpha"
motion:customFloatValue="0.0" />
</Constraint>
</ConstraintSet>
<ConstraintSet android:id="@+id/end">
<Constraint android:id="@+id/tijeras"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alpha="1.0"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/logo">
<CustomAttribute
motion:attributeName="alpha"
motion:customFloatValue="1.0" />
</Constraint>
</ConstraintSet>
推荐阅读
- tkinter - 显示意外结果的命令函数
- pyarrow - 使用数据构造表。避免创建数据框
- nginx - NGINX - 为静态文件位置添加后缀
- python - 我可以让我的 python 脚本在 arduino 串行监视器中输入命令吗?
- python - Gzip 到 base64 编码将字符添加到 JSON 字符串
- php - Symfony 4. 为什么提交的表单只是部分填充模型?
- python - 列算术
- java - AES/EAX 加密与 JCE - EAX 中的 Mac 签入失败
- javascript - 如何将对象中的字符串值转换为数字?
- api - 如何在 openapi 3.0.2 中格式化 DELETE 方法?