【发布时间】:2020-06-20 20:42:05
【问题描述】:
我写了以下代码:
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 年之间,所以我想也许有办法做到这一点。
【问题讨论】:
-
我认为post 会帮助你
-
@Mutasim 嗨!谢谢您的回复。我看到了这篇文章并尝试编写 Youtube 视频中显示的代码。这真的很复杂和嵌套。它也是从 2014 年开始的,所以我想也许有更好的解决方案。