【问题标题】:source is not showing in imagebutton来源未显示在 imagebutton 中
【发布时间】:2012-09-06 07:44:20
【问题描述】:

我正在尝试制作一个会改变状态的 imageButton。所以我制作了一个名为“btn_marisa”的xml文件:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:drawable="@drawable/btn_marisa_bg_on" android:state_pressed="true"/>
<item android:drawable="@drawable/btn_marisa_bg"/> <!-- default -->

</selector>

比我用 ImageButton 做了一个布局,这就是代码:

<ImageButton
    android:id="@+id/imageButton3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/imageButton2"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@+id/imageButton2"
    android:adjustViewBounds="true"
    android:src="@drawable/marisa_logo"
    android:background="@drawable/btn_marisa"
    android:scaleType="fitStart" />

出于某种原因,在 Eclipse 中(在图形布局中)它看起来不错,但是当我将它安装在手机上时,只显示背景。它甚至可以改变状态,但我看不到我需要在背景上看到的图像。它是一个有图标和背景的按钮,我只希望背景改变状态。 我错过了什么?谢谢!

【问题讨论】:

  • 你有什么解决办法吗?

标签: android image background imagebutton


【解决方案1】:

它应该可以工作。

但首先,请确保源图像@drawable/marisa_logo小于背景图像btn_marisa_bg_on/btn_marisa_bg,否则图像将与整个背景重叠,您将无法看到背景状态何时改变.

另外,请尝试删除此属性以及android:scaleType="fitStart",因为这会拉伸源图像并且您将再次无法看到背景。

【讨论】:

  • 谢谢,但我的问题是我只看到背景。我根本看不到源图像。
  • 这很奇怪。我尝试了您的示例,仅使用我的图像并且效果很好-我能够看到源图像以及背景。然后尝试进行清理:Project -> Clean,为了测试,删除 adjustViewBounds 并查看是否有任何效果。
  • 它的表现太奇怪了!!无论如何,我解决了这个问题......我删除了图像 src,只是在上面放了一个 ImageView......它看起来很棒,但它很愚蠢......
【解决方案2】:

尝试使用 Button 而不是 ImageButton。 删除 android:src 并只留下 android:background。 在大多数情况下,这应该足够了。 尝试一下,看看它是否显示您想要的内容。

如果您确实需要 ImageButton 中的背景和源代码,请先查看我的建议是否有效,然后逐一添加您的修改。

【讨论】:

  • 也许我的问题并不清楚。我只看到背景。如果我将使用 Button,我仍然只会看到背景,因为 Button 只有背景而不是 ImageSource。这对获取背景和图标有什么帮助?谢谢。
  • 而marisa_logo 是图像,drawable 是背景?
猜你喜欢
  • 2015-09-03
  • 1970-01-01
  • 1970-01-01
  • 2014-09-05
  • 2014-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多