2017-02-06 4 views
-2

Я работаю над проектом Android с некоторыми TextViews для студентов, но я хочу, чтобы пользователи долгое время щелкали и получали возможность выделять некоторые части содержимого разными цветами, как это бывает в некоторых Библейские приложения или Adobe Reader. Возможность отмечать цвет текста происходит при длительном нажатии. Буду признателен за руководство, чтобы сделать эту работу.Как указать пользователю выделить TextView

+0

Вы хотите этого? https://android--code.blogspot.in/2016/03/android-highlight-text-in-textview.html –

+0

Ваш вопрос непонятен, обратитесь к этому: http://stackoverflow.com/help/how- to-ask –

+0

Я обновил вопрос. Спасибо. – user2810726

ответ

0

использование Spannable строка для стилизации Пример теста :

String firstWord = "Hello"; 
String secondWord = "World!"; 

TextView tvHelloWorld = (TextView)findViewById(R.id.tvHelloWorld); 

// Create a span that will make the text red 
ForegroundColorSpan redForegroundColorSpan = new ForegroundColorSpan(
     getResources().getColor(android.R.color.holo_red_dark)); 

// Use a SpannableStringBuilder so that both the text and the spans are mutable 
SpannableStringBuilder ssb = new SpannableStringBuilder(firstWord); 

// Apply the color span 
ssb.setSpan(
     redForegroundColorSpan,   // the span to add 
     0,         // the start of the span (inclusive) 
     ssb.length(),      // the end of the span (exclusive) 
     Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // behavior when text is later inserted into the SpannableStringBuilder 
              // SPAN_EXCLUSIVE_EXCLUSIVE means to not extend the span when additional 
              // text is added in later 

// Add a blank space 
ssb.append(" "); 

// Create a span that will strikethrough the text 
StrikethroughSpan strikethroughSpan = new StrikethroughSpan(); 

// Add the secondWord and apply the strikethrough span to only the second word 
ssb.append(secondWord); 
ssb.setSpan(
     strikethroughSpan, 
     ssb.length() - secondWord.length(), 
     ssb.length(), 
     Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 

// Set the TextView text and denote that it is Editable 
// since it's a SpannableStringBuilder 
tvHelloWorld.setText(ssb, TextView.BufferType.EDITABLE); 

enter image description here

Источник: https://guides.codepath.com/android/Working-with-the-TextView

+0

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

+0

в соответствии с обновлением вашего сообщения: вам нужно установить clickablespan в каждом слове, когда щелкнет произведение, вы измените размер шрифта или цвет или запустите анимацию выбранной работы. clickablespan и SpannableString поддерживают только клики, это не поддерживается longclick –

0

Лучше использовать библиотеку для него. Перейдите по этой ссылке. https://github.com/athkalia/EmphasisTextView

+0

дайте мне знать, это ценно или нет ... – Champandorid

+0

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

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