【问题标题】:Change Android Drawable Button Icon Programmatically以编程方式更改 Android 可绘制按钮图标
【发布时间】:2016-02-01 00:08:49
【问题描述】:

如何以编程方式更改 FloatingActionButton 或 Button 小部件的 android:src XML 属性?我在活动中定义了一个按钮,如下所示:

FloatingActionButton floatingActionButton = (FloatingActionButton) this.findViewById(R.id.start_button);

它有一个初始的android:src 设置如下:

android:src="@android:drawable/ic_media_play"

我正在尝试使用setImageResource(int id) 来更改android:src XML 属性,但是如何在单击按钮后访问诸如ic_media_pause 之类的Drawable 图标。当我尝试将 R.drawable.ic_media_pause 传递给 setImageResource() 方法时,我收到了无法解析符号错误。

floatingActionButton.setImageResource(R.drawable.ic_media_pause);

如何获取可用的 R.drawable 资源以将其作为参数传递。

任何帮助将不胜感激。谢谢!

【问题讨论】:

  • 您的 res/drawable 文件夹中是否有一个名为“ic_media_pause”的文件,或者这是 SDK 中包含的默认 android 图标?如果是这样,请尝试android.R.drawable.ic_media_pause
  • 我正在使用 SDK 中包含的默认 android 图标库。你的建议绝对有效。你应该发表回应。顺便说一句,我可以使用get.Resources.getIdentifier() 来获取默认的 android 图标库吗?
  • 让我快速检查一下
  • 是的,你可以,但根据文档,不鼓励这样做。 developer.android.com/reference/android/content/res/…
  • 因此,如果我在可绘制文件夹中有自定义图像资源,例如,我想使用R.drawable.custom_image 而不是使用getResources().getIdentifier("custom_image", "drawable", getPackage())?这就是他们不鼓励使用标识符的意思吗?

标签: java android drawable


【解决方案1】:

您正在尝试访问 SDK 中包含的默认图标。您需要在资源标识符前加上“android”。例如:

floatingActionButton.setImageResource(android.R.drawable.ic_media_pause); 

这将允许您引用默认图标。

:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    • 2011-05-14
    • 2011-08-23
    • 2011-03-07
    相关资源
    最近更新 更多