【问题标题】:Is it possible to overlay an icon on a picture是否可以在图片上叠加图标
【发布时间】:2020-12-08 12:31:11
【问题描述】:

我正在创建一个允许用户上传图片的应用程序。图片上传成功后,我想在右上角添加一个绿色对号(可绘制)。失败时也一样,但有一个十字架。 Atm 我正在使用 Glide 在屏幕上显示 URI。我怎样才能做到这一点?

【问题讨论】:

  • 在照片的ImageView 上为您的图标添加ImageView。让覆盖层ImageView 一开始就具有INVISIBLEGONE 的可见性。上传完成后,显示ImageView 并确保它有您想要的图标。

标签: android kotlin uri android-glide


【解决方案1】:

您可以通过调用 glide 侦听器来实现这一点。首先,您必须使用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.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);

希望这对你有用。

【讨论】:

  • 这工作谢谢!我唯一的问题是 ImageView 是正方形而不是圆形?
  • 哪个,主要还是图标?
  • “检查”图标。但我通过使用可绘制的圆形背景解决了这个问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 2016-05-16
  • 2011-07-18
  • 2018-10-31
  • 1970-01-01
相关资源
最近更新 更多