如何在ImageView上将小图标覆盖在另一个图像上

时间:2013-07-24 14:34:47

标签: java android

我有一个gridView布局来显示图像,我想在标记的图像上放置一个小图标。

这里是我的代码:

ImageView i;
    if (convertView == null) {  
        i = new ImageView(mContext);
        i.setLayoutParams(new GridView.LayoutParams(width, height));
        i.setPadding(10, 10, 10, 10);
        i.setScaleType(ImageView.ScaleType.CENTER_CROP);

    } else {
        i = (ImageView) convertView;
    }

    if(mImageSet == IMAGE_SET_ONE) { 
            boolean cek = true;
            i.setImageBitmap(decodeSampledBitmapFromResource(mContext.getResources(),mThumbIds[position],width,width)); 

    }

请帮助..

2 个答案:

答案 0 :(得分:3)

ImageView小部件具有内置功能,可用于设置背景和前景图像。您可以在xml中查看它的外观,可以使用ImageView上的setImageResource和setImageBackground方法设置src和background字段。

<?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" >

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:layout_centerInParent="true"
        android:background="@color/pink"
        android:src="@drawable/facebook_icon" />

</RelativeLayout>

First example

唯一的问题是src(叠加)图像将匹配图像视图的高度或宽度。

因此,要解决此问题,您将在相对中使用多个图像视图,并在每个图像视图中单独设置背景或src。

<?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" >

    <ImageView
        android:layout_width="120dp"
        android:layout_height="120dp"
        android:layout_centerInParent="true"
        android:background="@color/pink" />

        <ImageView
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_centerInParent="true"
        android:src="@drawable/facebook_icon" />

</RelativeLayout>

Second example

答案 1 :(得分:0)

<FrameLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:translationZ="10dp">

    <ImageView
        android:layout_width="100dp"
        android:layout_height="100dp"
        app:srcCompat="@raw/image" />

    <ImageView
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_gravity="right|bottom"
        android:layout_marginRight="10dp"
        android:background="#f00"
        android:padding="5dp"
        app:srcCompat="@drawable/ic_baseline_photo_camera_24" />
</FrameLayout>

用srcCompat替换图像