我正在使用按钮(或ImageButtons)来显示我的应用程序的图标。我使用它来设置按钮的状态,按下按钮的图像和按下按钮的另一个图像:
selector(this, favorites, R.drawable.icon_star_mark, R.drawable.icon_star_mark_selected);
public static void selector(Context c, Button b, int normal_image, int pressed_image){
StateListDrawable states = new StateListDrawable();
states.addState(new int[] {android.R.attr.state_pressed}, c.getResources().getDrawable(pressed_image));
states.addState(new int[] { }, c.getResources().getDrawable(normal_image));
b.setBackgroundDrawable(states);
}
我需要在图标下面放置文字,但我想学习它而不使用带有图标和文本视图的LinearLayout。如果有可能实现它,我想学习这样做。
这是我创建图标的方式:
Button map= new Button(this);
selector(this, map, R.drawable.icon_map, R.drawable.icon_map_selected);
map.setText("Map");
问题是文本显示在图标上方,而不是图标下方。
用java代码可以实现吗? (将图标文本放在图标下方,而不使用带有文本视图的线性布局)
提前致谢
答案 0 :(得分:6)
可以使用drawableTop属性。选择器进入android:background,图标进入android:drawableTop attr。
<Button
android:id="@+id/btn"
style="@style/DashboardButton"
android:drawableTop="@drawable/any_drawable"
android:text="@string/any_text" />
或者您可以使用button.setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom);