我有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());
}
}
感谢任何建议
答案 0 :(得分:0)
我可以想到几种方法:
选项1:
将SquaredImageView
包裹在Framelayout
中,并在其中放置另一个SqauredImageView
。在第二个图像视图上设置复选标记。
选项2:
将SquaredImageView
换成FrameLayout
并在foreground
的{{1}}属性上设置复选标记图片(使用FrameLayout
)。
选项3:
创建支持覆盖图片的setForeground
(类似于ForegroundSquaredImageView
的{{1}}属性)。
可以在此处找到类似这样的代码:https://gist.github.com/JakeWharton/0a251d67649305d84e8a。您需要将其更改为从foreground
扩展。