【问题标题】:Foreground not visible in real device but visible in emulator前景在真实设备中不可见,但在模拟器中可见
【发布时间】:2015-12-24 14:55:12
【问题描述】:

当我为按钮设置前景时,它在 Android Studio 上显示很好,但是当我在手机上尝试时,我看不到选择的图片。这是一个新的项目来测试这个:

Android Studio 的偏好有问题还是只是我的手机有问题?

<TextView
    android:layout_width="wrap_content"
    android:layout_height="100dp"
    android:text="Hello World!"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:foreground="@mipmap/ic_launcher"
    android:foregroundGravity="center" />

这里是 Hello World 的简单代码。

【问题讨论】:

    标签: android android-layout android-studio android-image


    【解决方案1】:

    android:foreground 属性用于前景选择器(添加到 FrameLayout)。它不是为了简单地绘制图像。

    textView 没有属性 android:foreground。并且将图像放在textView 的前景中也没有任何意义。要了解有关textView 的属性和方法的更多信息,请关注Android developer page

    如果您想在按钮上添加图像,请使用 imageButton。

    【讨论】:

    • 我都试过了,按钮 imagebutton 等都一样,看来我的手机渲染正确。 @shvet-脉轮
    • 我认为这个答案不再正确。从 API 23 开始,基类 View 中定义的 android:foreground 属性可用于所有子类,而不仅仅是 FrameLayout。上面显示的原始 TextView 示例现在应该可以按预期工作,但需要注意一点。我注意到在我自己的实现中设置android:singleLine="true" 会导致前景drawables 不被绘制无论出于何种原因。更多信息在这里:stackoverflow.com/q/50974994/5162097
    【解决方案2】:

    或者,我添加了带有android:drawableLeft 的图像(在我的情况下,左边没问题)并且它显示得很好。因此,如果有人遇到类似问题,android:drawableLeft 也可以。

    【讨论】:

    • 你没有在我发布的textview的android开发者页面上找到它
    • 在那里没有看到它,但你在你提供的链接中是对的,所以我将你的答案标记为最有帮助。
    猜你喜欢
    • 1970-01-01
    • 2012-11-19
    • 2017-09-21
    • 2021-02-15
    • 2015-02-21
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多