Java経由でボタンのドローアブルを変更することは可能ですか?
例; このようなボタンがあります。
<Button
style="@style/Buttons"
android:id="@+id/butFavTeam"
android:drawableBottom="@drawable/venue"/>
現在の drawableBottom イメージを自分の drawable ディレクトリの別のイメージに変更したいと考えています。
この方法を見たことがありますか?
/*
Sets the Drawables (if any) to appear to the left of, above, to the right of, and below the text. Use 0 if you do not want a Drawable there. The Drawables' bounds will be set to their intrinsic bounds.
*/
public void setCompoundDrawablesWithIntrinsicBounds (Drawable left, Drawable top, Drawable right, Drawable bottom)
これを試して:
/*remember to first clear the callback of the drawable you are replacing to prevent memory leaks...
* Get the Drawables for the button by calling: myButton.getCompoundDrawables(), then loop through that calling myOldDrawable.setCallback(null);
* e.g:*/
for(Drawable myOldDrawable : myButton.getCompoundDrawables())
{
myOldDrawable.setCallback(null);
}
//use null where you don't want a drawable
myButton.setCompoundDrawablesWithIntrinsicBounds(null,null,null, myNewDrawable);
それがお役に立てば幸いです。
ちょうどそれを見つけました。
Drawable myIcon = this.getResources().getDrawable(R.drawable.myVenue);
butFavTeam.setCompoundDrawablesWithIntrinsicBounds(null, null, null, myIcon);
ちなみに...誤ってsetCompoundDrawables()メソッドを使用しないように注意してください。setCompoundDrawablesWithIntrinsicBounds()と同じパラメーターを取りますが、明らかにいくつかの境界の詳細も期待しています。
私は最初の先行入力方式を怠惰に受け入れたので、これの餌食になりました。画像が表示されない理由がわからない場合に備えて、これを投稿します。