Ho uno Text View
con contenuto di estensione dell'immagine. Ho dato ellipsize = "end"
per Text View
. Dopo l'ellisse, lo span dell'immagine appare dopo di esso.L'intervallo di visualizzazione delle immagini viene visualizzato anche dopo la dimensione ridotta in Android textView
13
A
risposta
-3
Prova questa:
android:ellipsize="end"
android:singleLine="true"
4
utilizzare la classe EllipsizedTextView da iosched. Per impostare il testo nel metodo vista utilizzo
setText(CharSequence text, BufferType type)
per Spannable è possibile utilizzare
textView.setText(text, TextView.BufferType.SPANNABLE);
anche nel file XML è necessario definire android:ellipsize
e android:maxLines
oppure è possibile impostare a livello di codice pure.
Inserire il codice qui per provarlo. Codice è modificato, tratto da this domanda
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.Editable;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.text.style.ImageSpan;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MainActivity extends AppCompatActivity {
private EditText editText;
private Button button;
private EllipsizedTextView textView;
private static final String PATTERN = "\\[\\w+?\\]";
private Pattern pattern;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.edittext);
button = (Button) findViewById(R.id.btn);
textView = (EllipsizedTextView) findViewById(R.id.text);
//programmatic way of setting max lines and ellipsize
textView.setMaxLines(2);
textView.setEllipsize(TextUtils.TruncateAt.END);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
insertImageSpan();
}
});
pattern = Pattern.compile(PATTERN);
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
textView.setText(s, TextView.BufferType.SPANNABLE);
}
});
}
private void insertImageSpan(){
insertTextInCurrentPosition(editText,"[face]");
int select = editText.getSelectionStart();
editText.setText(spanText(editText.getText()));
editText.setSelection(select);
}
public CharSequence spanText(CharSequence text) {
SpannableStringBuilder t = null;
if(text instanceof SpannableStringBuilder){
t = (SpannableStringBuilder) text;
}else{
t = new SpannableStringBuilder(text);
}
Matcher m = pattern.matcher(text);
while (m.find()) {
String mResult = m.group();
String key = mResult.substring(1, mResult.length() - 1);
ImageSpan[] spans = t.getSpans(m.start(),m.end(),ImageSpan.class);
if(spans== null || spans.length==0){
try{
ImageSpan span = new ImageSpan(this , R.drawable.ic_launcher);
t.setSpan(span , m.start() , m.end() , Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}catch (Exception e){
continue;
}
}
}
return t;
}
public static void insertTextInCurrentPosition(EditText tv, CharSequence str) {
if (tv == null || TextUtils.isEmpty(str)) return;
tv.getText().replace(tv.getSelectionStart() , tv.getSelectionEnd() , str , 0 , str.length());
}
}
e EllipsizedTextView
import android.content.Context;
import android.content.res.TypedArray;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.widget.TextView;
/**
* A simple {@link TextView} subclass that uses {@link TextUtils#ellipsize(CharSequence,
* android.text.TextPaint, float, android.text.TextUtils.TruncateAt, boolean,
* android.text.TextUtils.EllipsizeCallback)} to truncate the displayed text. Th
*/
public class EllipsizedTextView extends TextView {
private static final int MAX_ELLIPSIZE_LINES = 100;
private int mMaxLines;
public EllipsizedTextView(Context context) {
this(context, null, 0);
}
public EllipsizedTextView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public EllipsizedTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// Attribute initialization
final TypedArray a = context.obtainStyledAttributes(attrs, new int[]{
android.R.attr.maxLines
}, defStyle, 0);
mMaxLines = a.getInteger(0, 1);
a.recycle();
}
@Override
public void setText(CharSequence text, BufferType type) {
CharSequence newText = getWidth() == 0 || mMaxLines > MAX_ELLIPSIZE_LINES ? text :
TextUtils.ellipsize(text, getPaint(), getWidth() * mMaxLines,
TextUtils.TruncateAt.END, false, null);
super.setText(newText, type);
}
@Override
protected void onSizeChanged(int width, int height, int oldWidth, int oldHeight) {
super.onSizeChanged(width, height, oldWidth, oldHeight);
if (width > 0 && oldWidth != width) {
setText(getText());
}
}
@Override
public void setMaxLines(int maxlines) {
super.setMaxLines(maxlines);
mMaxLines = maxlines;
}
}
e activity_main
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="16dp"
android:paddingBottom="16dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/edittext"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/edittext" />
<com.anirudha.experiment.EllipsizedTextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="2"
android:singleLine="false"/>
</RelativeLayout>
</ScrollView>
0
Si dovrebbe ignorare SpannedEllipsizer, Potete trovare perfetta risoluzione qui: https://github.com/lsjwzh/FastTextView/blob/master/widget.FastTextView/src/main/java/com/lsjwzh/widget/text/FastTextView.java
Problemi correlati
- 1. Java: La lettura delle immagini e la visualizzazione come ImageIcon
- 2. Forzare la visualizzazione delle immagini alle dimensioni reali in Mathematica
- 3. Visualizzazione di emoticon in Android
- 4. Il frammento non viene visualizzato dopo il gonfiaggio [Fisso, ma ...]
- 5. IE8 non la visualizzazione delle immagini (rosso x) ... a volte
- 6. Come posso comprimere la dimensione delle immagini gif con ImageMagick?
- 7. visualizzazione delle immagini nel JComboBox
- 8. Visualizzazione di un file MS Word in visualizzazione (ad esempio TextView) in Android
- 9. UIView addSubview e la visualizzazione secondaria non viene visualizzato
- 10. Come posso correggere la visualizzazione delle immagini in Outlook 2013?
- 11. Scrolling Textview in android
- 12. Quanto è grande la dimensione delle immagini di sfondo?
- 13. Visualizzazione superficie fotocamera Immagini Esteso
- 14. Libreria di modifica delle immagini per Android
- 15. Twitter Bootstrap modale non la visualizzazione delle immagini a distanza
- 16. disegnare la riga in TextView su Android
- 17. Visualizzazione di immagini nell'app AIR
- 18. Viene chiamato didReceiveMemoryWarning/viewDidUnload quando viene visualizzato un controller di visualizzazione?
- 19. Android come fare la diapositiva delle immagini?
- 20. Visualizzazione immagini con effetto giostra in Android
- 21. Freccia indietro nella barra delle azioni Sherlock non viene visualizzato
- 22. Visualizzazione delle immagini nell'alimentazione degli atomi
- 23. Il valore in edittext non viene visualizzato finché non viene attivato. Android
- 24. Textview non scorrevole in Android
- 25. UIBarButtonItem L'immagine non viene mostrata e viene invece visualizzato un rettangolo bianco nella dimensione dell'immagine, perché?
- 26. Visualizzazione delle date in formato localizzato su Android
- 27. Webview Android, campo di immissione file filechooser non viene visualizzato
- 28. animazione della dimensione del testo di TextView
- 29. visualizzazione delle immagini con ashx Handler
- 30. Tutti i browser supportano la visualizzazione progressiva delle immagini?
qual è la domanda? – user3623735
@ user3623735 è stato chiesto nel 2012 –