2015-12-30 3 views
0

Я создал пользовательский класс textview, и я использую BackgroundColorSpan для применения цвета в фоновом режиме. Как добавить пустое пространство до и после каждой строки. Я очень ценю любую помощь.Как добавить место в начале и конце каждой строки

final String test_str1 = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book."; 


public class CustomTextView extends TextView { 
    public CustomTextView(Context context) { 
     super(context); 
     setFont(); 
    } 

    public CustomTextView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     setFont(); 
    } 

    public CustomTextView(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
     setFont(); 
    } 

    private void setFont() { 
     Typeface font = Typeface.createFromAsset(getContext().getAssets(), "fonts/TEXT.ttf"); 
     setTypeface(font, Typeface.NORMAL); 

     Spannable myspan = new SpannableString(getText()); 
     myspan.setSpan(new BackgroundColorSpan(0xFF757593), 0, myString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
     txtview.setText(myspan); 
    } 
} 
+0

Вы попробовали .append (""); –

+0

Вы спрашиваете о добавлении пространства в качестве символа ("") или в качестве пробела в макете? – naXa

+0

Возможный дубликат http://stackoverflow.com/questions/6863974/android-textview-padding-between-lines –

ответ

0

Одно не просто добавляет или добавляет строку с пробелом в Java. В первом случае вы должны искать библиотеку, которая сделает это за вас.

Я нашел Apache Commons Lang, чтобы быть хорошим для струнных манипуляций. Он имеет класс StringUtils со следующими методами:

public static String appendIfMissing(String str, CharSequence suffix, CharSequence... suffixes)
Добавляет суффикс к концу строки, если строка уже не закончится ни суффиксов.

public static String prependIfMissing(String str, CharSequence prefix, CharSequence... prefixes) Подготавливает префикс к началу строки, если строка еще не начинается с любого из префиксов.

Обе операции на String являются нулевыми.

Linking the library Вашему проекту легко. Если вы используете Gradle, просто добавьте эту строку в зависимости от

dependencies { 
    ... 
    compile 'org.apache.commons:commons-lang3:3.4' 
} 
0

Другой вариант - использовать JDK. String.format() можно использовать для ввода влево/вправо данной строки.

public static String padRight(String s, int n) { 
    return String.format("%1$-" + n + "s", s); 
} 

public static String padLeft(String s, int n) { 
    return String.format("%1$" + n + "s", s); 
} 

public static String pad(String s, int n) { 
    return padRight(padLeft(s, n), n); 
} 

// Usage example 
String myString = getText().toString(); 
Spannable myspan = new SpannableString(pad(myString, 1)); 
myspan.setSpan(new BackgroundColorSpan(0xFF757593), 0, myString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
txtview.setText(myspan); 

Ссылки:

  1. Source методов, используемых в этом ответе;
  2. Format String Syntax | Java-документы;
  3. SpannableString | Android-документы;
  4. CharSequence | Android-документы.
+0

Я пробовал один и тот же код, но он не работает. – jason

Смежные вопросы