我想在点击它时将图像缩放为新的活动。 为了解决我想要实现的目标,我连续上传了一些图片。 如果通过图片很难理解,我可以尝试上传视频。 我发现的唯一的事情是this。但它仅适用于View。我想开始一个完整的新活动或对话。
有什么建议我怎么能以最好的方式做到这一点?
答案 0 :(得分:3)
我相信这个库完全符合你的要求:https://github.com/albinmathew/PreLollipopTransition(是的,你想要的是Android API的一部分,但只是来自Lollipop - 你可能也想支持更低的API,这就是这个图书馆是为了。)
编辑:原始https://github.com/takahirom/PreLollipopTransition似乎更新,所以你可能想要使用它。
有了它,你基本上可以在一个活动中做到这一点:
findViewById(R.id.imageView).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Intent intent = new Intent(MainActivity.this, SubActivity.class);
ActivityTransitionLauncher.with(MainActivity.this).from(v).launch(intent);
}
});
......这是第二项活动
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub);
ActivityTransition.with(getIntent()).to(findViewById(R.id.sub_imageView)).start(savedInstanceState);
}
根据http://guides.codepath.com/android/shared-element-activity-transition,您只需将<item name="android:windowContentTransitions">true</item>
添加到您的活动样式中,并在两个活动中定义android:transitionName="<some name>"
的元素(两个活动中的transitionName必须相同),然后像这样开始活动:
Intent intent = new Intent(this, DetailsActivity.class);
// Pass data object in the bundle and populate details activity.
intent.putExtra(DetailsActivity.EXTRA_CONTACT, contact);
ActivityOptionsCompat options = ActivityOptionsCompat.
makeSceneTransitionAnimation(this, (View)ivProfile, "<transition name>");
startActivity(intent, options.toBundle());
(直接从链接中获取)。但请注意,这仅适用于L +设备,而上述解决方案适用于API 14+以上的任何设备。我个人认为,如果提供了一个提供向后兼容性的好包装器,那么使用本机API是没有意义的,但是你要求它,所以就是这样。
希望这对您有所帮助,如果您有任何问题请发表评论
答案 1 :(得分:0)