2017-04-14 48 views
0

我想使用anko在普通按钮的中心有一个图标。我试图如何为anko中的按钮设置图标(可绘制)?

button.backgroundResource = R.drawable.arrow_forward

,但我得到了绘制覆盖整个按钮,并从其父获得背景色(设置背景颜色按钮explicite什么都不做)。

enter image description here

我试图drawable = ...为好,以同样的效果。如何设置带有anko的图标以获得原始宽高比并居中?

+2

不要使用背景。这将始终使它伸展整个视图边界。除此之外,请查找设置ScaleType的方法。您可能需要centerInside或fitCenter。 – RobCo

回答

2

首先,为了你应该使用ImageButton一个按钮设置图标/图像。

然后很简单。

imageButton{ 
    imageResource = R.drawable.ic_cc_checkmark 
} 

如果您需要使用其他资源或绘制,然后得到它没有得到一个资源未找到错误使用ctx.getDrawable(R.x.y)

希望这可以帮助别人

+0

好吧,我需要接受它作为答案,并提出另一个问题 - 我原本打算在按钮上显示图像或文本,具体取决于应用程序的状态 - 这就是为什么我问了设置按钮的图像。最后,我结束了两个按钮(图像和平原),并相应地隐藏/显示它们。 – Antek

1

不知道Anko应该如何工作。 技术上为Android,假设你有一个图像按钮,你应该做的:

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

谢谢,我只是应该使用ImageButton。最初我只想使用一个普通按钮,并根据状态设置一个图标或文本。使用两个按钮并显示/隐藏它们似乎是最简单的解决方案。 我无法使'scaleType'与背景一起工作,'drawableTop | Bottom'等也不适合我的需求,所以我会坚持我现在拥有的。 不过,我不知道是否应该接受答案。 – Antek

+0

你的意思是你不能让scaleType在ImageButton上工作? –

+0

不,我无法使用scaleType在普通按钮上工作(即没有这种属性)。 ImageButton按照预期直接从盒子中运行,并且根本不需要缩放图像。我会相应地编辑我的问题,虽然它看起来可能已经被回答了很多次,然后 – Antek

相关问题