gpt4 book ai didi

java - 在另一个 ImageView 之上加载 ImageView

转载 作者:太空宇宙 更新时间:2023-11-04 14:43:49 26 4
gpt4 key购买 nike

我有 92 张图像,我希望有一个指示符(例如复选标记)来指示图像已解锁。我在 .png 文件中有复选标记,我首先尝试的是为每个图像制作单独的副本,并将复选标记放在 Photoshop 中的图像顶部。但是我知道必须有一种更简单的方法,只需在已有的图像顶部添加复选标记文件,而不是复制带有复选标记的图像副本。

我有一个 GridViewAdapter 类,负责将原始图像加载到 gridview 中:

@Override public View getView(int position, View convertView, ViewGroup parent) {
SquaredImageView view = (SquaredImageView) convertView;
if (view == null) {
view = new SquaredImageView(context);
view.setScaleType(CENTER_CROP);
}

// Get the image URL for the current position.
Integer url = getItem(position);

// Trigger the download of the URL asynchronously into the image view.
Picasso.with(context) //
.load(url) //
//
.error(R.drawable.error) //
.fit() //
.into(view);



return view;
}

其中 url 是一个列表,其中包含对要加载的每个图像的引用

提到的 SquaredImageView 类是:

/** An image view which always remains square with respect to its width. */
final class SquaredImageView extends ImageView {
public SquaredImageView(Context context) {
super(context);
}

public SquaredImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}

@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
setMeasuredDimension(getMeasuredWidth(), getMeasuredWidth());
}
}

如有任何建议,我们将不胜感激

最佳答案

我可以想出几种方法来做到这一点:

  • 选项 1:

    SquaredImageView 包裹在 Framelayout 中,并在其中放置另一个 SqauredImageView 。在第二个 ImageView 上设置复选标记。

  • 选项 2:

    SquaredImageView 包装在 FrameLayout 中,并在 FrameLayoutforeground 属性上设置复选标记图像(使用setForeground)。

  • 选项 3:

    创建一个支持图像叠加的ForegroundSquaredImageView(类似于FrameLayoutforeground属性)。

    类似的代码可以在这里找到:https://gist.github.com/JakeWharton/0a251d67649305d84e8a 。您需要将其更改为从 SquaredImageView 扩展。

关于java - 在另一个 ImageView 之上加载 ImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24665734/

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