gpt4 book ai didi

java - 如何在 API 16 中使用过渡动画?

转载 作者:行者123 更新时间:2023-12-01 12:11:05 25 4
gpt4 key购买 nike

我写了以下代码:

Glide.with(this).asBitmap().load(userImageURL).into(new CustomViewTarget<ImageView, Bitmap>(userAvatarImage) {

@Override
protected void onResourceCleared(@Nullable Drawable placeholder) {
progressBarUserAvatar.setVisibility(View.GONE);
userAvatarImage.setImageBitmap(null);
}

@Override
public void onLoadFailed(@Nullable Drawable errorDrawable) {
progressBarUserAvatar.setVisibility(View.GONE);
final Bitmap circleLetterTile = tileProvider.getCircularLetterTile(userFullName);
userAvatarImage.setImageBitmap(circleLetterTile);
}

@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
progressBarUserAvatar.setVisibility(View.GONE);
final Bitmap circleAvatarBitmap = tileProvider.getCircularImage(resource);
userAvatarImage.setImageBitmap(circleAvatarBitmap);

userAvatarImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent showProfilePictureIntent = new Intent(UserProfileActivity.this, DisplayUserImageActivity.class);
showProfilePictureIntent.putExtra("userImageURL",userImageURL);

final String transitionName = ViewCompat.getTransitionName(userAvatarImage);
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(
UserProfileActivity.this, userAvatarImage, transitionName);
UserProfileActivity.this.startActivity(showProfilePictureIntent, options.toBundle());
UserProfileActivity.this.overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});
}
});
它基本上使用 Glide 显示用户的图像。它还设置了 onClick以黑色背景的大模式打开图像的监听器。目前, UserProfileActivity为空(仅加载布局)。问题是我不能使用 getTransitionName因为它只能用于 api 21。我必须在我的项目中使用 API 16,所以这是一个问题。实现它的最简单方法是什么?我查看了以前的主题,但它们都在 2013 年至 2015 年之间,所以我想也许有办法做到这一点。

最佳答案

这是不可能的,使用 API >21。你可以在这里引用官方文档 https://developer.android.com/reference/android/app/ActivityOptions#makeSceneTransitionAnimation(android.app.Activity,%20android.view.View,%20java.lang.String) .
我不确定,为什么你没有使用警告,但是为 getTransitionName 做.不幸的是,早期版本不支持它。作为另一个引用,您可以查看 https://www.programcreek.com/java-api-examples/?class=android.app.ActivityOptions&method=makeSceneTransitionAnimation关于如何使用过渡动画的示例。
离题
您可以通过编写自己的带有过渡动画的工具来实现您想要的动画。这不是那么容易,但它是纯 View 实现,您不需要新的Android版本。出于同样的原因,您可以使用 Flutter(最低版本为 Android 16)并用几行代码制作过渡动画(英雄动画)。因为它是开箱即用的实现。

关于java - 如何在 API 16 中使用过渡动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62491427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com