Android: ¿Cómo colocar un final de botón de un textview con texto multilínea?
Quiero colocar un botón al final del párrafo textview, como "Go" botón que cuando el usuario haga clic en él la aplicación va a otra página.
por ejemplo:
- Sube un diseño con el teclado suave pero guarda uno en la parte inferior
- Eliminar salto de línea en TabLayout
- Android: ¿Dónde se debe definir / registrar un OnSharedPreferenceChangeListener?
- crear pantalla de ayuda de Android
- Escala de imágenes en android con respecto al ancho de la pantalla
if you have good endurance, for killing the monster you must going to section 2. [Go->] -if you haven't good endurance, flee to section 3. [Go->]
En el ejemplo anterior [Go->]
es un pequeño botón que debe colocarse exactamente en el final de la línea.
¿Cómo puedo hacerlo en tiempo de ejecución?
- Quiero google play store como scrollview
- Cómo crear un nuevo diseño para un proyecto de Android (con Eclipse)
- Diseño de notificaciones personalizadas de Android con RemoteViews
- Cambio del tema de la aplicación en tiempo de ejecución mediante el uso de archivos de temas externos
- Por qué android se construye en una máquina virtual (Dalvik)
- Diseño similar a WhatsApp para multilines EditText y botones junto a él
- ¿Buenas herramientas para desarrollar una GUI en Android?
- Fragmento sin desplazamiento en un ViewPager dentro de CoordinatorLayout
Puede utilizar espacios para esto.
Supongamos que tiene un TextView
llamado myText
.
Drawable goButtonDrawable = getResources().getDrawable(R.drawable.go_button); String text = "If you have good endurance, for killing the monster you must go to section 2. [GO]" String replace = "[GO]"; final int index = text.indexOf(replace); final int endIndex = index + replace.length(); final ImageSpan imageSpan = new ImageSpan(goButtonDrawable, ImageSpan.ALIGN_BASELINE); final ClickableSpan clickSpan = new ClickableSpan() { @Override public void onClick(View clicked) { // Do your [GO] action } }; SpannableString spannedText = new SpannableString(text); spannedText.setSpan(imageSpan, index, endIndex, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); spannedText.setSpan(clickSpan, index, endIndex , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); myText.setText(spannedText);
Obviamente esto podría ser mejor abstraído (usted podría hacer un TextView personalizado que maneja esto internamente), pero esa es la idea general.
Puede lograr esto estableciendo el texto como html
Añada la etiqueta HTML img a su texto y establézcalo en una vista de texto como esta
String htmlText = "Your multi line text <img src=\"ic_go_icon\">"; textView.setText(Html.fromHtml(htmlText, new Html.ImageGetter() { @Override public Drawable getDrawable(String source) { int resourceId = getResources().getIdentifier(source, "drawable",getPackageName()); Drawable drawable = getResources().getDrawable(resourceId); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); return drawable; } }, null));
Pero manejar el clic será para ver el texto completo.