Android 以编程方式创建自定义TextView
我正在写一个聊天应用程序。我正在用代码为每个聊天创建文本视图。这涉及到“addChat”方法和粘贴在下面的chatshape.xml。除了文本框上的角不是圆的以外,所有这些都可以完美地工作。tv.setBackgroundResource(R.drawable.chatshape)无效Android 以编程方式创建自定义TextView,android,textview,Android,Textview,我正在写一个聊天应用程序。我正在用代码为每个聊天创建文本视图。这涉及到“addChat”方法和粘贴在下面的chatshape.xml。除了文本框上的角不是圆的以外,所有这些都可以完美地工作。tv.setBackgroundResource(R.drawable.chatshape)无效 private void addChat(String chat, String when, Boolean mine) { int leftMargin; TextView tv = new
private void addChat(String chat, String when, Boolean mine)
{
int leftMargin;
TextView tv = new TextView(this);
tv.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.MATCH_PARENT));
tv.setTextSize(2,20);
tv.setPadding(10, 4, 10, 4);
tv.setBackgroundResource(R.drawable.chatshape);
tv.setText(chat);
if (mine) {
leftMargin = 10;
tv.setBackgroundResource(R.color.white);
tv.setTextColor(Color.BLUE);
}
else {
leftMargin = 25;
tv.setBackgroundResource(R.color.gray);
tv.setTextColor(Color.WHITE);
}
this.messageScroll.addView(tv);
final ViewGroup.MarginLayoutParams lpt = (ViewGroup.MarginLayoutParams) tv.getLayoutParams();
lpt.setMargins(leftMargin,4,10,4);
}
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners
android:bottomRightRadius="20px"
android:bottomLeftRadius="20px"
android:topLeftRadius="20px"
android:topRightRadius="20px"/>
</shape>
private void addChat(字符串聊天、字符串时间、布尔值)
{
int左边距;
TextView tv=新的TextView(此);
tv.setLayoutParams(新建ViewGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_内容,
ViewGroup.LayoutParams.MATCH_PARENT);
tv.setTextSize(2,20);
设置填充(10,4,10,4);
tv.setBackgroundResource(R.drawable.chatshape);
tv.setText(聊天);
如果(我的){
leftMargin=10;
tv.setBackgroundResource(R.color.white);
tv.setTextColor(Color.BLUE);
}
否则{
leftMargin=25;
tv.setBackgroundResource(R.color.gray);
电视.彩色(彩色.白色);
}
this.messageScroll.addView(电视);
final ViewGroup.marginlayoutparms lpt=(ViewGroup.marginlayoutparms)tv.getlayoutparms();
lpt.setMargins(leftMargin,4,10,4);
}
它有效 你试过9个补丁吗?不,我从没听说过。它真的很棒!!谢谢你的提示。VegeOSplash:我给了你怀疑的好处,并将此标记为答案,但在了解9Patch之后,我甚至不打算尝试。对于自定义形状和背景来说,这似乎是一个更好的解决方案。当然!。9补丁是圆角的一个很好的解决方案,因为它可以在所有设备上工作,不会产生任何失真。Android本身会根据用户设备屏幕分辨率和DPI来调整边缘的大小
<corners android:radius="8dp" />
<solid android:color="#FFFFFF" />
<stroke
android:width="1dp"
android:color="#848482" />
<padding
android:bottom="3dp"
android:left="3dp"
android:right="3dp"
android:top="3dp" />