我正在尝试在一块文本旁边显示一条蓝线,几乎是这样的:

这是我的代码:

<TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableLeft="@drawable/blue_line" />

blue_line是jpg文件。一个蓝色矩形。无论textview中的文本是什么,它都会以其原始大小显示。如何根据文本的高度动态调整其高度?例如,当文本较少时,将其缩短;当文本较多时,则将其延长...。

最佳答案

您可以尝试通过设置图像边界来在代码中进行操作

textView1.getViewTreeObserver()
        .addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            Drawable img = ActivityName.this.getContext().getResources().getDrawable(
                R.drawable.blue_line);
            img.setBounds(0, 0, img.getIntrinsicWidth() * textView1.getMeasuredHeight() / img.getIntrinsicHeight(), textView1.getMeasuredHeight());
            textView1.setCompoundDrawables(img, null, null, null);
            textView1.getViewTreeObserver().removeOnGlobalLayoutListener(this);
        }
    });

10-08 06:21