我使用TextView和9补丁图片作为android中消息传递应用程序的背景。
这是它的样子:
看看蓝色怎么样,左边显示的太多了?当它决定必须包装文本时,如何减少它呢?
我尝试访问public View getView(int position, View convertView, ViewGroup parent)
中视图的宽度和高度字段,但它们始终为零(ps,TextView位于ListView内部,getView
方法位于适配器内部ListView)。
谢谢!
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/message_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5sp"
android:background="@drawable/bubble_b"
android:shadowColor="@color/textShadow"
android:shadowDx="1"
android:shadowDy="1"
android:text="Medium Text"
android:textColor="#000000"
android:textSize="16sp"
android:lineSpacingMultiplier="1.1" />
</LinearLayout>
答案 0 :(得分:3)
在您附加的iPad图片中,iMessage将maxWidth
设置为我猜的屏幕的一半。
因此,您可以获得Screen Width
并将maxWidth
设置为TextView
的一半
这是您获取屏幕宽度并将其传递给TextView
,
Display display = ((WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
yourTextView.setMaxWidth(display.getWidth()/2);
P.S。 getWidth
类的Display
方法已弃用,您可以找到替代解决方案。您也可以获得width
的{{1}}。
答案 1 :(得分:0)
检查draw9patch中的9-patch图像。检查左边如何绘制黑线。我认为底线定义了要拉伸的部分,顶行定义了内容的区域。