2017-04-14 51 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

相關問題