2015-11-18 2 views
2

я хотел бы создать TextView с цветным фоном и пространством между строками, связывает это: enter image description hereTextView фон с пространством между линиями

Я пытаюсь с SpannableString, но я не могу создать прозрачное пространство между линии, любая идея?

Спасибо и ребята извините за мой ПЛОХОЙ английский.

+0

Использование android: lineSpacingExtra – curiousMind

ответ

0

Попробуйте использовать lineSpacingExtra и lineSpacingMultiplier в вашем XML-файле.

+0

Я пробовал, но с этими атрибутами я не могу достичь прозрачного фона – alfdev

0

Если я не ошибаюсь, вы хотите добавить прозрачную новую строку в свой TextView?

Это невозможно с помощью одного TextView, поскольку SpannableString будет влиять только на содержимое TextView, а фон Textview отличается от содержимого TextView. Если вам нужно это сделать, вам необходимо предоставить специальную реализацию для TextView, которая будет рисовать прозрачный фон в методе onDraw для вашего пользовательского представления, когда в текстовом контенте найдет новую строку.

Или другой вариант - визуализировать новое текстовое изображение для каждой строки текста.

0

Привет это должно быть сделано с помощью добавления TextView dynemically в макете и в это время вы должны установить свойства textview.You может сделать это как

TvEx.java

public class TvEx extends Activity { 
LinearLayout llMain; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.tv_ex); 
    llMain = (LinearLayout) findViewById(R.id.llmainTvEx); 

    final int N = 10; // total number of textviews to add 

    final TextView[] myTextViews = new TextView[N]; // create an empty 
                // array; 

    for (int i = 0; i < N; i++) { 
     // create a new textview 
     final TextView rowTextView = new TextView(this); 
     LinearLayout.LayoutParams buttonLayoutParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
     buttonLayoutParams.setMargins(100, 20, 0, 0); // Set margins here 
     // set some properties of rowTextView or something 
     rowTextView.setText("This is row #" + i); 
     rowTextView.setBackgroundColor(Color.WHITE); 
     rowTextView.setLayoutParams(buttonLayoutParams); 
     // add the textview to the linearlayout 
     llMain.addView(rowTextView); 
     // save a reference to the textview for later 
     myTextViews[i] = rowTextView; 
    } 
    } 
} 

tv_ex.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:id="@+id/llmainTvEx" 
    android:layout_height="match_parent" 
    android:background="#A75653" 
    android:orientation="vertical"></LinearLayout> 
+0

Используя этот код, вы можете добавить Textview Dynemically и установить для него свойства, и всякий раз, когда есть новая строка, вы считаете ее новой строкой и может делать то, что вы хотите. – Sam

+0

Как разделить текст на строки? – alfdev

+0

using split the String: http://stackoverflow.com/questions/3732790/android-split-string – Sam