Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将Gravity设置为TextView,背景可绘制图像无法编程_Java_Android_Android Layout - Fatal编程技术网

Java 将Gravity设置为TextView,背景可绘制图像无法编程

Java 将Gravity设置为TextView,背景可绘制图像无法编程,java,android,android-layout,Java,Android,Android Layout,我寻找这个问题,但没有找到一个方便的答案。 我尝试将TextView动态添加到LinearLayout,但问题是setGravity不起作用。 这是我的代码: TextView textView = new TextView(mContext); textView.setTextColor(Color.BLACK); textView.setText(colorKeyword(resources.getString(R.string

我寻找这个问题,但没有找到一个方便的答案。 我尝试将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的布局高度设置为与父级匹配,重力会根据需要将文本水平居中,但副作用是所有背景/textview区域都拉伸到父级高度。 我现在可以肯定的是,这是一个与它们的排列顺序有关的问题。这可能是我错过做的事情

我将此用于家长:

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);
我试图从一个已经添加了背景的布局中进行充气,但我遇到了同样的问题

文本视图的高度应与背景图像的高度相匹配


谢谢你的建议

setGravity
按预期工作,使用hierarchyviewer查看视图边界,您将确保它工作正常。尝试将Gravity.CENTER改为Gravity.CENTER_垂直,以查看可能有助于解决问题的任何效果。我怀疑您误解了LayoutParams的工作方式。父视图组为其子视图提供其版本的LayoutParams。假设要将文本视图居中放置在线性布局中。1.创建
线性布局
文本视图
。2.创建新的LinearLayout.LayoutParams(包裹内容、包裹内容、重心)。3. <代码>线性布局。添加(文本视图、布局参数)。