我正在尝试在一块文本旁边显示一条蓝线,几乎是这样的:
这是我的代码:
<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);
}
});