我想为ImageView设置背景颜色,当imageview有图像资源时,它可以工作,我得到我的背景颜色但是当图像视图没有图像资源时,SetBackgroundColor不要工作,什么都不做,这是我的代码:
xml布局:
<ImageView android:layout_centerHorizontal="true"
android:id="@+id/favor_item_image"
android:layout_alignParentTop="true" android:layout_height="wrap_content"
android:layout_width="match_parent" android:adjustViewBounds="true"/>
java代码:
ImageView favorImage = (ImageView) MyView.findViewById(R.id.favor_item_image);
//favorImage.setImageResource(R.drawable.btndelete);
favorImage.setBackgroundColor(Color.argb(255,255,0,0));
所以,当我评论这一行://favorImage.setImageResource(R.drawable.btndelete);我无法设置图像视图背景颜色,但是当我取消注释这一行时,setBackgroundColor工作正常。
请帮助。 谢谢
答案 0 :(得分:6)
您没有看到任何内容的原因是因为您将layout_height设置为wrap_content。如果在ImageView上没有设置图像,wrap_content会将高度设置为0.如果希望在没有图像的情况下显示颜色,则必须将layout_height设置为实际值,例如50dp。
答案 1 :(得分:1)
ImageView
的高度为wrap_content
,当您只设置背景颜色时,它没有内容。因此不会出现。您应该能够通过设置不同的高度来解决这个问题。
答案 2 :(得分:0)
尝试设置:android:adjustViewBounds=false
我可能会弄错,但当设置为true
时,如果视图没有图像,视图可能会缩放到0宽度和0高度。