4

我想为 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"/>

爪哇代码:

       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 工作正常。

请提供任何帮助。谢谢

4

3 回答 3

6

您没有看到任何内容的原因是您将 layout_height 设置为 wrap_content。当您没有在 ImageView 上设置图像时,wrap_content 将高度设置为 0。如果您希望在没有图像的情况下显示颜色,则必须将 layout_height 设置为实际值,例如 50dp。

于 2012-04-18T17:52:13.247 回答
1

ImageView的高度为wrap_content,当您只设置背景颜色时,它没有内容。因此不出现。您应该能够通过设置不同的高度来解决此问题。

于 2012-04-18T17:52:28.657 回答
0

尝试设置:android:adjustViewBounds=false我可能弄错了,但是当它设置为true视图时,如果没有图像,它可能会缩放到 0 宽度和 0 高度。

于 2012-04-18T17:51:55.377 回答