如何为anko中的按钮设置图标(可绘制)?

时间:2017-04-14 12:49:39

标签: android kotlin anko

我希望使用anko在普通按钮的中心放置一个图标。我试过了

button.backgroundResource = R.drawable.arrow_forward

但我得到了覆盖整个按钮的drawable并从其父级获取背景颜色(在按钮explicite上设置背景颜色不起作用)。

enter image description here

我也尝试了drawable = ...,效果相同。如何设置带有anko的图标以具有原始高宽比并居中?

3 个答案:

答案 0 :(得分:4)

首先,要在按钮上设置图标/图像,您应该使用java -Dspring.profiles.active=dev -jar application.jar

然后很容易。

ImageButton

如果您需要使用其他资源或drawable,那么要在没有找到资源的情况下获取它,请使用imageButton{ imageResource = R.drawable.ic_cc_checkmark }

希望这有助于某人

答案 1 :(得分:1)

不确定Anko应该如何运作。 技术上对于Android,假设你有一个图像按钮,你应该这样做:

((ImageButton)findViewById(R.id.yourButtonID)).setImageResource(R.drawable.yourDrawable);

答案 2 :(得分:1)

如果其他人仍在尝试实现这一目标,请参阅以下指南:

1.像下面这样创建扩展功能(可能在独立的.kt文件中,或者在您想使用按钮的ActivityFragment类文件中),

inline fun ViewManager.materialButton(@StyleRes theme: Int, init: MaterialButton.() -> Unit = {}): MaterialButton {
    return ankoView({ MaterialButton(it) }, theme, init = init)
}
  1. 然后像其他Anko视图一样使用您的按钮,如下所示:
materialButton(R.style.App_ThemeOverlay /** some overlay theme **/) {
  icon = context.getDrawable(R.drawable.arrow_forward)
  // ... other regular and material button properties here ...
}