将Gravity设置为TextView,背景可绘制图像以编程方式不起作用

时间:2015-09-18 11:09:37

标签: java android android-layout

我搜索这个问题,但我找不到方便的答案。 我尝试动态地将TextView添加到LinearLayout,但问题是setGravity不起作用。 这是我的代码:

TextView textView = new TextView(mContext);
                textView.setTextColor(Color.BLACK);
                textView.setText(colorKeyword(resources.getString(R.string.tipsbutton_tooltip)));
                textView.setTextSize(35);
                textView.setTextScaleX(1.1f);
                textView.setPadding(textViewPadding, textViewPadding, 0, textViewPadding);
                textView.setTextAppearance(mContext, R.style.fontForTooltipsTexts);
                textView.setGravity(Gravity.CENTER_VERTICAL);
                textView.measure(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
                textView.setBackgroundResource(R.drawable.tip_box);

                tooltipView.setBackgroundResource(android.R.color.transparent);
                ImageView arrowView = new ImageView(mContext);
                arrowView.setImageResource(R.drawable.tip_arrow_down);
                arrowView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
                arrowView.measure(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
                tooltipView.setOrientation(LinearLayout.VERTICAL);
                tooltipView.addView(textView);
                tooltipView.addView(arrowView);

如果我将textview的布局高度设置为MATCH_PARENT,则重力知道将文本居中放置在我需要的位置,但副作用是所有背景/文本视图区域都被拉伸到父高度。 我现在肯定是一个与布局顺序有关的问题。可能是我想念的事情。

我将它用于父母:

LinearLayout tooltipView = new LinearLayout(mContext);
        tooltipView.setOrientation(LinearLayout.VERTICAL);
        LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
        tooltipView.setLayoutParams(lp);
        tooltipView.measure(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
        tooltipView.setGravity(Gravity.CENTER_VERTICAL);

我试图从已添加背景的布局中进行充气,但我遇到了同样的问题。

TextView的高度应与背景图像高度匹配。

感谢您的任何建议!

0 个答案:

没有答案