如何在图像视图选中时添加透明图像?

时间:2015-06-30 08:40:25

标签: android image imageview

我有一组连续的图像视图,当用户点击图像时,背景会发生变化。我想在图像视图的顶部添加一个透明图像,中间有一个小刻度表明它已被选中。

final ImageView iv_image=new ImageView(this);
    LayoutParams iv_image_params=new LayoutParams(
            Math.round(100*multiplier),
            Math.round(100*multiplier));
    iv_image_params.setMargins(5, 5, 10, 5);
    iv_image.setId(Integer.parseInt(id));

    try {
        Bitmap bmp = BitmapFactory.decodeFile(DashBoard.file_path+image);
        iv_image.setImageBitmap(bmp);
        iv_image.setBackground(getResources().getDrawable(R.drawable.border_red_image_based));
        iv_image.setSelected(false);

    } catch (Exception e) {
    }
    iv_image.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            if (iv_image.isSelected()==false) {
                iv_image.setBackground(getResources().getDrawable(R.drawable.border_only_image_based));
                iv_image.setSelected(true);

            } else {
                iv_image.setBackground(getResources().getDrawable(R.drawable.border_red_image_based));
                iv_image.setSelected(false);

            }

        }
    });

    ll_view.addView(iv_image, iv_image_params);

* border_only_image_based:是我的选择器,我只是为图像视图设置白色边框,表示它已被选中。

正常图片:

enter image description here

我希望图像位于该图像视图的顶部:

enter image description here

1 个答案:

答案 0 :(得分:1)

下面的内容应该会有所帮助。

<RelativeLayout
    android:id="@+id/rl_profile_pic_container"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_marginStart="10dp"
    android:layout_marginTop="10dp">

    <ImageView
        android:id="@+id/img_profile_pic_non_editable"
        android:layout_width="110dp"
        android:layout_height="120dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_centerInParent="true"
        android:adjustViewBounds="true"
        android:background="@drawable/your_actual image"
        android:scaleType="center" />

    <ImageView
        android:id="@+id/img_camera_center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_centerVertical="true"
        android:src="@drawable/your_tick_icon"
        android:visibility="gone" />
</RelativeLayout>

第一张图片视图是您的实际图片。第二张图片是你要放在它上面的刻度线。添加clicklistener以使刻度线可见或不可见。此代码基于我的要求。请根据需要修改其他属性。

尝试使用刻度线图像作为图标大小,如36x36,48x48,72x72,96x96