android - android ImageView如何移动到另一个布局
问题描述
我看到了很多像 TransitionManager 这样的库,但不能做我想做的事。
我想像下面的动画一样移动 ImageView https://codepen.io/elmahdim/pen/tEeDn
单击 imageView 后,我想将该图像移动到 id 为“Cart”的按钮
我的布局xml如下
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="10"
android:id="@+id/mainView"
android:orientation="vertical"
tools:context=".MainActivity">
<ScrollView
android:layout_weight="8"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="0dp">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:weightSum="5"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/first"
android:background="@color/colorPrimaryDark"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_gravity="center_horizontal|center_vertical"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical"
android:layout_height="wrap_content">
<ImageView
android:layout_width="90dp"
android:layout_height="90dp"
android:src="@drawable/americano"
/>
<TextView
android:textSize="25dp"
android:textAlignment="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="1번째"
/>
</LinearLayout>
.....
.....
</ScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_weight="2"
android:layout_height="0dp">
<Button
android:layout_width="wrap_content"
android:text="Cart"
android:id="@+id/Cart"
android:layout_height="wrap_content" />
....
....
</LinearLayout>
在 Activity 上,我尝试使用 TransitionManager 库示例代码,但它没有给我效果。我想要做的是将 imageView 移动到 Button id "Cart"
first= (LinearLayout)findViewById(R.id.first);
first.setOnClickListener(new View.OnClickListener() {
boolean mToRightAnimation;
@Override
public void onClick(View v) {
TransitionManager.beginDelayedTransition(transitionsContainer,
new ChangeBounds().setPathMotion(new ArcMotion()).setDuration(500));
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) first.getLayoutParams();
params.gravity =Gravity.RIGHT | Gravity.BOTTOM;
first.setLayoutParams(params);
}
});
解决方案
推荐阅读
- rxjs - Rxjs:压缩两个长度不等的观察值
- javascript - 按下时更改本机文本的背景颜色
- android - 将配置添加为依赖项是一种令人困惑的行为,不建议这样做
- string - 打字稿:如何在接口中的字符串索引签名定义中引用属性名称
- python - 熊猫将时间序列数据列转换为列表列?
- excel - 插入、复制、删除麻烦
- ceph - ceph mds错误目录inode上的错误回溯并写入新文件崩溃
- python-3.x - 用漂亮的汤提取额外的数据
- swiftui - 使用 ForEach 创建视图,但如何让 onTapGesture 立即更新?
- java - 使用 Javax servlet Webfilter 在 Spring Boot 中 CORS 起源不起作用