如何在运行时设置属性“android:drawableTop”
如何在运行时设置属性“ android:drawableTop
”
使用
button.setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom);
设置Drawable(如果有的话)显示在文本的左侧,上方,右侧和下方。 使用0,如果你不想在那里绘制。 Drawables的边界将被设置为它们的内在边界。
如果你使用
button.setCompoundDrawables(left, top, right, bottom);
设置Drawable(如果有的话)显示在文本的左侧,上方,右侧和下方。 如果你不想要Drawable那么使用null。 Drawable必须已经有了setBounds(Rect) 。
Drawable top = getResources().getDrawable(R.drawable.image); button.setCompoundDrawablesWithIntrinsicBounds(null, top , null, null);
final Drawable drawableTop = getResources().getDrawable(R.drawable.btn_check_buttonless_on); btnByCust.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { btnByCust.setCompoundDrawablesWithIntrinsicBounds(null, drawableTop , null, null); } });
Button button = (Button) findViewById(R.id.button); button.setCompoundDrawables(left, top, right, bottom);
我使用这个代码在左边使用“Theme.Holo”button和一个“自定义图像”,并用各种方式调用函数来改变它(图像)。
protected void app_dibujarLogojuego() { if(bitmaplogojuego!=null){ bitmaplogojuego.recycle(); bitmaplogojuego=null; } Drawable LOGO = null; if(verjuego.equals("COSA1")){ LOGO = getResources().getDrawable(R.drawable.img_logo_COSA1); } if(verjuego.equals("COSA2")){ LOGO = getResources().getDrawable(R.drawable.img_logo_COSA2); } if(verjuego.equals("COSA3")){ LOGO = getResources().getDrawable(R.drawable.img_logo_COSA3); } if(verjuego.equals("COSA4")){ LOGO = getResources().getDrawable(R.drawable.img_logo_COSA4); } BUTTON_DECLARED_ID.setCompoundDrawablesWithIntrinsicBounds(LOGO, null , null, null); }
btn.setBackgroundResource(R.drawable.your_image_name_here);