首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何以编程方式将样式应用于Textview

如何以编程方式将样式应用于Textview
EN

Stack Overflow用户
提问于 2013-04-01 08:51:33
回答 5查看 420关注 0票数 0

我以编程的方式创建了一个textView。现在我需要以编程的方式给这个文本视图分配一个样式。(不仅是TextAppearance,还有左边距、填充等)。所有这些样式属性都是在xml文件中定义的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
TextView tv = new TextView(this);
EN

回答 5

Stack Overflow用户

发布于 2013-04-01 08:56:29

设置填充非常简单。但利润率有点微不足道。请看下面的内容。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
TextView tv = new TextView(this);
//setting padding left top right bottom
tv.setPadding(10, 10, 10, 10);
//setting left margin
LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
llp.setMargins(50, 0, 0, 0); // llp.setMargins(left, top, right, bottom);
tv.setLayoutParams(llp);
票数 0
EN

Stack Overflow用户

发布于 2013-04-01 08:56:59

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
   tv.setLayoutParams(params); 
   tv.setPadding(left, top, right, bottom);
   left- padding to left
   top - padding to right
   right -padding to right
   bottom -padding to bottom 

有关更多样式,请查看下面的链接。请参阅setter方法。您可以设置文本大小、背景颜色等。

http://developer.android.com/reference/android/widget/TextView.html

票数 0
EN

Stack Overflow用户

发布于 2013-04-01 08:57:36

使用布局参数设置此属性。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
TextView t = new TextView(this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(heightInPixels, widthInPixel);
params.setMargins(left, top, right, bot);
t.setLayoutParams(params);
mLinearLayout.addView(t);

编辑:

如果在attrs.xml文件中定义了自己样式表,则必须在构造函数中创建自己的Textview和处理所需的属性。它用于处理来自XML的属性。对于java的定义,你必须创建"set method“。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class MyTextView extends TextView
{
   String _stringValue;

    public MyTextView(Context c)
    {
        this(c, null);
    }

    public MyTextView(Context c, AttributeSet attrs)
    {
        this(c, attrs, 0);
    }

    public MyTextView(Context c, AttributeSet attrs, int defStyle)
    {
            super(c, attrs, defStyle);
        TypedArray a = c.obtainStyledAttributes(attrs, R.styleable.MyStyleAble);
        _stringValue = a.getString(R.styleable.MyStyleAble_stringValue);
        a.recycle(); //don't forget this line! 
    }

    public void setStringValue(String s)
    {
        _stringValue = s;
    } 
}

编辑

这里在代码中使用了MyTextView。只需使用标准构造函数创建它。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MyTextView t = new MyTextView(context);

然后设置可设置样式的值。在我的示例中,它是字符串值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
t.setStringValue("My string text");

然后使用layoutParams。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
t.setLayoutParams(params);

并将新创建的TextView添加到某个布局中。例如LinearLayout。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mLinearLayout.addView(t);

我忘了说,只有当您需要在attrs.xml文件中设置属性时,才必须定义可设置样式的int。然后像这样使用它。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<my.package.name.MyTextView
   xmlns:custom="http://schemas.android.com/apk/res/my.package.name"
   custom:stringValue="some string text"
   //and also you can use standart android:... attributes
/>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15740375

复制
相关文章

相似问题

如何以编程方式设置textView的样式?

81

至于TextView,如何以编程方式更改样式?

53

如何以编程方式将样式应用于所有UIViews

43

如何以编程方式创建TextView?

10

如何以编程方式显示TextView?

52
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文