我有一组连续的图像视图,当用户点击图像时,背景会发生变化。我想在图像视图的顶部添加一个透明图像,中间有一个小刻度表明它已被选中。
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:是我的选择器,我只是为图像视图设置白色边框,表示它已被选中。
正常图片:
我希望图像位于该图像视图的顶部:
答案 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