setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds

1.setCompoundDrawables(Drawable left, Drawable top, Drawable right, Drawable bottom)

  api:Sets the Drawables (if any) to appear to the left of, above, to the right of, and below the text. Use null if you do not want a Drawable there. The Drawables must already have had setBounds(Rect) called.

  大意:可以在上、下、左、右设置图标,如果不想在某个地方显示,则设置为null。但是Drawable必须已经setBounds(Rect)(设置过初始位置、宽和高等信息)。

1 Resources res = getResources();
2 Drawable image = res.getDrawable(R.drawable.image);
3 image.setBounds(1, 1, 50, 50);
4 button.setCompoundDrawables(image, null, null, null);

2.setCompoundDrawablesWithIntrinsicBounds(Drawable left, Drawable top, Drawable right, Drawable bottom)

  api:Sets the Drawables (if any) to appear to the left of, above, to the right of, and below the text. Use null if you do not want a Drawable there. The Drawables' bounds will be set to their intrinsic bounds.

  大意:可以在上、下、左、右设置图标,如果不想在某个地方显示,则设置为null。图标的宽高将会设置为固有宽高,既自动通过getIntrinsicWidth和getIntrinsicHeight获取。

1 RadioButton button = (RadioButton) group.getChildAt(i); Resources res = getResources();
2 Drawable Image = res.getDrawable(R.drawable.image);
3 button.setCompoundDrawablesWithIntrinsicBounds(null,Image, null, null);

 

posted @ 2014-07-31 11:19  自强自律  阅读(390)  评论(0编辑  收藏  举报