【问题标题】:ImageButton set drawable using @android:drawable/ programmaticallyImageButton 使用@android:drawable/ 以编程方式设置drawable
【发布时间】:2019-11-05 16:23:37
【问题描述】:

我的 XML 布局中有以下图像按钮

<ImageButton
    android:id="@+id/show_only_checked"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_weight="0"
    android:src="@android:drawable/arrow_down_float"
    tools:src="@android:drawable/arrow_down_float" />

太好了。完美运行。但我想在 onClick() 事件中将其切换为代码中此可绘制对象的升级版本。每次用户单击按钮时,我都想在向上和向下箭头之间来回切换。我似乎太密集了,无法弄清楚这一点。我尝试了以下代码,但没有成功。

if (ShowOnlyChecked) {
    view.setBackground(Drawable.createFromPath("@android:drawable/arrow_up_float"));
} else {
    view.setBackground(Drawable.createFromPath("@android:drawable/arrow_down_float"));
}

任何帮助将不胜感激。

我的部分问题是如何将“android.R ...”引用到可绘制对象。另一个是调用哪个方法。

【问题讨论】:

标签: android android-drawable imagebutton


【解决方案1】:

您的代码将更改视图的背景图片。

这里是如何设置按钮图像:

((ImageButton) view).setImageResource(R.drawable.arrow_down_float);

【讨论】:

  • 好的,这和 Ehsan 几乎都是正确的。这是有效的: ((ImageButton) view).setImageResource(android.R.drawable.arrow_up_float);
  • 当然你可以用任何你想要的资源调用 setImageResource()
  • 我不知道如何进入“android.R.drawable...”,这对我来说是一个新障碍。
  • 很高兴你把它整理出来!
【解决方案2】:

尝试:

 imageButton.setBackgroundResource(android.R.drawable.arrow_up_float);

【讨论】:

    【解决方案3】:

    当您使用 ImageButton 组件时,您在运行时错误地设置了一些东西,因为 Drawable.createFromPath 提供了可绘制的路径,例如绝对路径或所需路径。 如果要设置箭头,请尝试根据资源文件夹添加不同分辨率的箭头图像 或者 youId.setBackgroundResource(android:R.drawable.id) 或者从这里获取图片

    https://material.io/resources/icons/?style=baseline

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-31
      • 1970-01-01
      • 1970-01-01
      • 2020-01-13
      • 2016-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多