android布局下划线设置,我可以在Android布局中为文本加下划线吗?

Justin..

10

我知道这是一个迟到的答案,但我提出了一个非常好的解决方案......我从Anthony Forloney那里得到了答案,用于在代码中标注文本,并创建了一个TextView的子类来处理这个问题.然后,只要您想要带下划线的TextView,就可以使用XML中的子类.

这是我创建的类:

import android.content.Context;

import android.text.Editable;

import android.text.SpannableString;

import android.text.TextWatcher;

import android.text.style.UnderlineSpan;

import android.util.AttributeSet;

import android.widget.TextView;

/**

* Created with IntelliJ IDEA.

* User: Justin

* Date: 9/11/13

* Time: 1:10 AM

*/

public class UnderlineTextView extends TextView

{

private boolean m_modifyingText = false;

public UnderlineTextView(Context context)

{

super(context);

init();

}

public UnderlineTextView(Context context, AttributeSet attrs)

{

super(context, attrs);

init();

}

public UnderlineTextView(Context context, AttributeSet attrs, int defStyle)

{

super(context, attrs, defStyle);

init();

}

private void init()

{

addTextChangedListener(new TextWatcher()

{

@Override

public void beforeTextChanged(CharSequence s, int start, int count, int after)

{

//Do nothing here... we don't care

}

@Override

public void onTextChanged(CharSequence s, int start, int before, int count)

{

//Do nothing here... we don't care

}

@Override

public void afterTextChanged(Editable s)

{

if (m_modifyingText)

return;

underlineText();

}

});

underlineText();

}

private void underlineText()

{

if (m_modifyingText)

return;

m_modifyingText = true;

SpannableString content = new SpannableString(getText());

content.setSpan(new UnderlineSpan(), 0, content.length(), 0);

setText(content);

m_modifyingText = false;

}

}

现在......只要您想在XML中创建带下划线的文本视图,就可以执行以下操作:

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

android:gravity="center"

android:text="This text is underlined"

android:textColor="@color/blue_light"

android:textSize="12sp"

android:textStyle="italic"/>

我在此XML代码段中添加了其他选项,以显示我的示例适用于更改文本颜色,大小和样式...

希望这可以帮助!

虽然这个例子有效,但我很快意识到,如果你想要在XML中有额外的控制权,那就不行了......我已经切换到一个更好的解决方案,涉及以下步骤:1)子类textview 2)添加支持通过自定义属性为文本加下划线,以执行上面指定的下划线.唯一的区别是,如果设置了自定义属性,则只执行下划线代码. (2认同)

你可能感兴趣的:(android布局下划线设置)