我的gridView使用Picasso显示本地存储中的图像(imageItem).通过单击右上角的选择图标来选择图像时,图像的状态会更改,并且在所选状态下,图像具有蓝色边框,如下所示:
我尝试过这样的事情:
public void onClick(View v) {
if(!v.isSelected()){
imageItem.setBackgroundResource(R.drawable.photoborder);
}else{
imageItem.setBackgroundDrawable(null);
}
}
});
当图像尚未加载时,我确实看到了边框.
当毕加索完成图像加载时,边框已被覆盖:
如何在ImageView中设置图像的边框?
非常感谢您的任何建议!
这是每个图像项目的布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<custome.SquaredImageView
android:id="@+id/image_item_in_gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/ic_launcher"
android:background="@drawable/attachment_gallery_images_items_background" />
<ImageView
android:id="@+id/imageCheckStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginRight="2dp"
android:layout_marginTop="2dp"
android:padding="2dp"
android:src="@drawable/abc_ic_cab_done_holo_dark" />
</RelativeLayout>
解决方法:
您的布局有2个视图; SquaredImageView显示图像,而ImageView作为选择指示器.当您为SquaredImageView设置背景时,它将被放置在SquaredImageView的后面(因为它是背景).
您需要在SquaredImageView前面添加一个View,然后在代码中修改其背景.
在您的XML布局中添加视图:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="right">
<custome.SquaredImageView
android:id="@+id/image_item_in_gridview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/ic_launcher"
android:background="@drawable/attachment_gallery_images_items_background" />
<View
android:id="@+id/imageCheckBorder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/photoborder" />
<ImageView
android:id="@+id/imageCheckStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="2dp"
android:layout_gravity="right"
android:layout_marginTop="2dp"
android:padding="2dp"
android:src="@drawable/abc_ic_cab_done_holo_dark" />
</FrameLayout >
然后修改代码以更改该视图的背景,而不是SquaredImageView. (在此示例中,它名为imageCheckBorder)
public void onClick(View v) {
if(!v.isSelected()){
imageCheckBorder.setBackgroundResource(R.drawable.photoborder);
}else{
imageCheckBorder.setBackgroundDrawable(null);
}
}