是否可以在图片上叠加图标
Is it possible to overlay an icon on a picture
我正在创建一个允许用户上传图片的应用程序。图片上传成功后,我想在右上角添加一个绿色勾号(可绘制)。失败时也是如此,但有一个十字架。 Atm 我正在使用 Glide 在屏幕上显示 URI。我怎样才能做到这一点?
您可以通过调用滑行侦听器来实现此目的。首先,您必须使用 android:visibility="gone"
.
在布局文件中添加覆盖 ImageView
例如:
Layout.xml 文件
<RelativeLayout
android:layout_width="200dp"
android:layout_height="200dp">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="Your main image view"
android:src="@drawable/gradient_background"/>
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:id="@+id/ivIcon"
android:contentDescription="Icon to be displayed after result"
android:src="@drawable/ic_thumb"
android:layout_margin="10dp"
android:layout_alignParentEnd="true"
android:visibility="gone"/>
</RelativeLayout>
然后像这样使用glide
Glide.with(getActivity())
.load(RESOURCE_ID)
.listener(new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
ivIcon.setImageResource(faliureImageResourceID);
ivIcon.setVisibility(View.VISIBLE);
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
ivIcon.setImageResource(successImageID);
ivIcon.setVisibility(View.VISIBLE);
return false;
}
})
.into(mainImageView);
希望这对你有用。
我正在创建一个允许用户上传图片的应用程序。图片上传成功后,我想在右上角添加一个绿色勾号(可绘制)。失败时也是如此,但有一个十字架。 Atm 我正在使用 Glide 在屏幕上显示 URI。我怎样才能做到这一点?
您可以通过调用滑行侦听器来实现此目的。首先,您必须使用 android:visibility="gone"
.
例如: Layout.xml 文件
<RelativeLayout
android:layout_width="200dp"
android:layout_height="200dp">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="Your main image view"
android:src="@drawable/gradient_background"/>
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:id="@+id/ivIcon"
android:contentDescription="Icon to be displayed after result"
android:src="@drawable/ic_thumb"
android:layout_margin="10dp"
android:layout_alignParentEnd="true"
android:visibility="gone"/>
</RelativeLayout>
然后像这样使用glide
Glide.with(getActivity())
.load(RESOURCE_ID)
.listener(new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
ivIcon.setImageResource(faliureImageResourceID);
ivIcon.setVisibility(View.VISIBLE);
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
ivIcon.setImageResource(successImageID);
ivIcon.setVisibility(View.VISIBLE);
return false;
}
})
.into(mainImageView);
希望这对你有用。