如何为图像和文本的动态按钮的图像设置顶部填充

时间:2014-03-03 08:04:43

标签: android android-button

我已经看过各种各样的问题,但无法让它们发挥作用。

我有一个按钮,背景,图像在顶部,文本在底部。该按钮是动态的,因此没有XML可用。

动态按钮的代码:

            final Button image = new Button(this);
            image.setTag(i);
            image.setText(buttonsList[i].toUpperCase());
            image.setGravity(Gravity.CENTER);
            image.setBackgroundColor(getResources().getColor(R.color.dark_grey));

            if (i == Const.MainIndex.FESTIVAL_OUTLOOK_INDEX) {

                try {
                    XmlResourceParser parser = getResources().getXml(
                            R.color.text_color_green);
                    ColorStateList colors = ColorStateList.createFromXml(
                            getResources(), parser);
                    image.setTextColor(colors);
                } catch (Exception e) {

                }

                //setting this value to -ve decreases the 
                            //gap between the image and text
                image.setCompoundDrawablePadding(-100);
                image.setCompoundDrawablesWithIntrinsicBounds(
                        null,
                        getResources().getDrawable(
                                R.drawable.sidemenu_image_festout), null, null);




                image.setBackgroundResource(R.drawable.button_background_green);
            }

以下是图片现在的样子..

enter image description here

我想在图像的TOP上设置填充。这样图像看起来并不接近按钮的边框。我怎样才能做到这一点?

我尝试设置image.setPadding(0,10,0,0)但没有效果。

1 个答案:

答案 0 :(得分:0)

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(left, top, right, bottom);
imageView.setLayoutParams(lp);

使用此