2

Java経由でボタンのドローアブルを変更することは可能ですか?

例; このようなボタンがあります。

<Button 
style="@style/Buttons" 
android:id="@+id/butFavTeam"
android:drawableBottom="@drawable/venue"/>

現在の drawableBottom イメージを自分の drawable ディレクトリの別のイメージに変更したいと考えています。

4

3 に答える 3

7

この方法を見たことがありますか?

/*
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);

それがお役に立てば幸いです。

于 2010-08-31T02:39:31.767 に答える
3

ちょうどそれを見つけました。

Drawable myIcon = this.getResources().getDrawable(R.drawable.myVenue);
butFavTeam.setCompoundDrawablesWithIntrinsicBounds(null, null, null, myIcon);
于 2010-08-31T02:47:11.780 に答える
1

ちなみに...誤ってsetCompoundDrawables()メソッドを使用しないように注意してください。setCompoundDrawablesWithIntrinsicBounds()と同じパラメーターを取りますが、明らかにいくつかの境界の詳細も期待しています。

私は最初の先行入力方式を怠惰に受け入れたので、これの餌食になりました。画像が表示されない理由がわからない場合に備えて、これを投稿します。

于 2012-12-31T20:24:01.347 に答える