android-在ImageView上的图像上设置背景

我的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);
    }
}
上一篇:android-将ImageView完全放在VideoView上


下一篇:java – Android – 将多个图像组合成一个ImageView