Android ShareDelement两个活动之间的转换是';不能正确地设置动画
我一直在努力使我的sharedELementTransitions工作得很顺利。但是我有一个问题,我的ImageView在返回动画时跳转并且不能正确缩放。我尝试过尽可能多地复制已经存在的android项目,即使是运行几乎相同代码的完美动画的项目,但似乎没有任何东西可以修复它。有没有人有过类似的问题?如果是,您是如何修复的?检查此解决方案它对我有效(退出和返回转换都有效) MainActivity.javaAndroid ShareDelement两个活动之间的转换是';不能正确地设置动画,android,shared-element-transition,Android,Shared Element Transition,我一直在努力使我的sharedELementTransitions工作得很顺利。但是我有一个问题,我的ImageView在返回动画时跳转并且不能正确缩放。我尝试过尽可能多地复制已经存在的android项目,即使是运行几乎相同代码的完美动画的项目,但似乎没有任何东西可以修复它。有没有人有过类似的问题?如果是,您是如何修复的?检查此解决方案它对我有效(退出和返回转换都有效) MainActivity.java public class MainActivity extends AppCompatAc
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ListView listview = (ListView) findViewById(R.id.listView);
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ImageView imageView = (ImageView) view.findViewById(R.id.imageListItem);
TextView textView = (TextView) view.findViewById(R.id.DummyText);
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
Pair<View, String> p1 = Pair.create((View) textView, "newTrans");
Pair<View, String> p2 = Pair.create((View) imageView, "profileAnimation");
ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(MainActivity.this, p1, p2);
startActivity(intent, optionsCompat.toBundle());
}
});
listview.setAdapter(new DummyAdapter());
}
private class DummyAdapter extends BaseAdapter {
@Override
public int getCount() {
return 20;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(MainActivity.this).inflate(R.layout.list_item, parent, false);
}
return convertView;
}
}
}
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
}
}
activity_second.xml
<?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="match_parent"
android:background="#FFFFFF"
android:paddingTop="30dp">
<ImageView
android:id="@+id/imgMain"
android:layout_width="125dp"
android:layout_height="125dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:background="@drawable/ic_launcher"
android:transitionName="profileAnimation" />
<TextView
android:id="@+id/DummyActivity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Dummy Text"
android:transitionName="newTrans" />
</RelativeLayout>
在样式中使用此项:
<item name="android:windowContentTransitions">true</item>
true
请分享您迄今为止尝试的内容请添加您的代码谢谢我的问题是我使用的是SubSamplingImageView而不是实际的imageview,因此它没有设置边界更改的动画
<?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="match_parent"
android:background="#FFFFFF"
android:paddingTop="30dp">
<ImageView
android:id="@+id/imgMain"
android:layout_width="125dp"
android:layout_height="125dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:background="@drawable/ic_launcher"
android:transitionName="profileAnimation" />
<TextView
android:id="@+id/DummyActivity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Dummy Text"
android:transitionName="newTrans" />
</RelativeLayout>
<item name="android:windowContentTransitions">true</item>