Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introducción a ImageSpan

Introducción a ImageSpan

Pequeño acercamiento a los Spans en Android en especial a ImageSpan

Avatar for Diego Reyes

Diego Reyes

January 23, 2019

Other Decks in Programming

Transcript

  1. Spans Son objetos de marcación que se pueden adjuntar y

    separar del texto. Ayudan a dar estilo a nivel caracter o párrafo.
  2. Spans Son objetos de marcación que se pueden adjuntar y

    separar del texto. Ayudan a dar estilo a nivel caracter o párrafo. val label = "¡Hello World!” val ss = SpannableString(label) ss.setSpan( ? , label.indexOf("W"), label.indexOf("!"), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  3. StyleSpan val label = "¡Hello World!” val ss = SpannableString(label)

    ss.setSpan( ? , label.indexOf("W"), label.indexOf("!"), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  4. StyleSpan val label = "¡Hello World!” val ss = SpannableString(label)

    ss.setSpan(StyleSpan(Typeface.BOLD_ITALIC), label.indexOf("W"), label.indexOf("!"), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  5. StyleSpan val label = "¡Hello World!” val ss = SpannableString(label)

    ss.setSpan(StyleSpan(Typeface.BOLD_ITALIC), label.indexOf("W"), label.indexOf("!"), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  6. UnderlineSpan val label = "¡Hello World!” val ss = SpannableString(label)

    ss.setSpan( ? , label.indexOf("W"), label.indexOf("!"), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  7. UnderlineSpan val label = "¡Hello World!” val ss = SpannableString(label)

    ss.setSpan(UnderlineSpan(), label.indexOf("W"), label.indexOf("!"), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  8. UnderlineSpan val label = "¡Hello World!” val ss = SpannableString(label)

    ss.setSpan(UnderlineSpan(), label.indexOf("W"), label.indexOf("!"), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  9. StrikethroughSpan val label = "¡Hello World!” val ss = SpannableString(label)

    ss.setSpan( ? , label.indexOf("W"), label.indexOf("!"), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  10. StrikethroughSpan val label = "¡Hello World!” val ss = SpannableString(label)

    ss.setSpan(StrikethroughSpan(), label.indexOf("W"), label.indexOf("!"), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  11. StrikethroughSpan val label = "¡Hello World!” val ss = SpannableString(label)

    ss.setSpan(StrikethroughSpan(), label.indexOf("W"), label.indexOf("!"), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  12. BackgroundColorSpan val label = "¡Hello World!” val ss = SpannableString(label)

    ss.setSpan( ? , label.indexOf("W"), label.indexOf("!"), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  13. BackgroundColorSpan val label = "¡Hello World!” val ss = SpannableString(label)

    ss.setSpan(BackgroundColorSpan(Color.YELLOW), label.indexOf("W"), label.indexOf("!"), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  14. BackgroundColorSpan val label = "¡Hello World!” val ss = SpannableString(label)

    ss.setSpan(BackgroundColorSpan(Color.YELLOW), label.indexOf("W"), label.indexOf("!"), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  15. BulletSpan val label = "¡Hello World!” val ss = SpannableString(label)

    ss.setSpan( ? , 0, label.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  16. BulletSpan val label = "¡Hello World!” val ss = SpannableString(label)

    ss.setSpan(BulletSpan(20, Color.RED, 10), 0, label.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  17. BulletSpan val label = "¡Hello World!” val ss = SpannableString(label)

    ss.setSpan(BulletSpan(20, Color.RED, 10), 0, label.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  18. ClickableSpan val label = "¡Hello World!" val ss = SpannableString(label)

    ss.setSpan( ? , label.indexOf("W"), label.indexOf("!"), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  19. ClickableSpan val label = "¡Hello World!" val ss = SpannableString(label)

    val cs = object : ClickableSpan() { override fun onClick(widget: View) { Toast.makeText(this@MainActivity, "onClick", Toast.LENGTH_SHORT).show() } } ss.setSpan( ? , label.indexOf("W"), label.indexOf("!"), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  20. ClickableSpan val label = "¡Hello World!" val ss = SpannableString(label)

    val cs = object : ClickableSpan() { override fun onClick(widget: View) { Toast.makeText(this@MainActivity, "onClick", Toast.LENGTH_SHORT).show() } } ss.setSpan(cs, label.indexOf("W"), label.indexOf("!"), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  21. ClickableSpan val label = "¡Hello World!" val ss = SpannableString(label)

    val cs = object : ClickableSpan() { override fun onClick(widget: View) { Toast.makeText(this@MainActivity, "onClick", Toast.LENGTH_SHORT).show() } } ss.setSpan(cs, label.indexOf("W"), label.indexOf("!"), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss binding.label.movementMethod = LinkMovementMethod.getInstance()
  22. ClickableSpan val label = "¡Hello World!" val ss = SpannableString(label)

    val cs = object : ClickableSpan() { override fun onClick(widget: View) { Toast.makeText(this@MainActivity, "onClick", Toast.LENGTH_SHORT).show() } } ss.setSpan(cs, label.indexOf("W"), label.indexOf("!"), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss binding.label.movementMethod = LinkMovementMethod.getInstance()
  23. ImageSpan Es un objeto que reemplaza texto adjuntado una imagen.

    Se puede alinear a la parte inferior o con la línea base del texto.
  24. ImageSpan Se puede alinear a la parte inferior o con

    la línea base del texto. Puede ser creado de las siguientes maneras:
  25. ImageSpan Se puede alinear a la parte inferior o con

    la línea base del texto. Puede ser creado de las siguientes maneras: Bitmap
  26. ImageSpan Se puede alinear a la parte inferior o con

    la línea base del texto. Puede ser creado de las siguientes maneras: Bitmap ImageSpan(context, bitmap)
  27. ImageSpan Se puede alinear a la parte inferior o con

    la línea base del texto. Puede ser creado de las siguientes maneras: Bitmap ImageSpan(context, bitmap) ImageSpan(context, bitmap, vertAlignment)
  28. ImageSpan Se puede alinear a la parte inferior o con

    la línea base del texto. Puede ser creado de las siguientes maneras: Drawable
  29. ImageSpan Se puede alinear a la parte inferior o con

    la línea base del texto. Puede ser creado de las siguientes maneras: Drawable ImageSpan(drawable, vertAlignment)
  30. ImageSpan Se puede alinear a la parte inferior o con

    la línea base del texto. Puede ser creado de las siguientes maneras: Resource id
  31. ImageSpan Se puede alinear a la parte inferior o con

    la línea base del texto. Puede ser creado de las siguientes maneras: Resource id ImageSpan(context, resourceId, vertAlignment)
  32. ImageSpan Se puede alinear a la parte inferior o con

    la línea base del texto. Puede ser creado de las siguientes maneras: Uri
  33. ImageSpan Se puede alinear a la parte inferior o con

    la línea base del texto. Puede ser creado de las siguientes maneras: Uri ImageSpan(context, uri, vertAlignment)
  34. ImageSpan val label = "¡Hello | World!" val ss =

    SpannableString(label) ss.setSpan( ? , label.indexOf("|"), label.indexOf("|") + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  35. ImageSpan val label = "¡Hello | World!" val ss =

    SpannableString(label) val scooter = ContextCompat.getDrawable(this, R.drawable.vd_ic_scooter_green) scooter!!.setBounds(0,0,64,96) ss.setSpan( ? , label.indexOf("|"), label.indexOf("|") + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  36. ImageSpan val label = "¡Hello | World!" val ss =

    SpannableString(label) val scooter = ContextCompat.getDrawable(this, R.drawable.vd_ic_scooter_green) scooter!!.setBounds(0,0,64,96) ss.setSpan(ImageSpan(scooter, ImageSpan.ALIGN_BASELINE), label.indexOf("|"), label.indexOf("|") + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  37. ImageSpan val label = "¡Hello | World!" val ss =

    SpannableString(label) val scooter = ContextCompat.getDrawable(this, R.drawable.vd_ic_scooter_green) scooter!!.setBounds(0,0,64,96) ss.setSpan(ImageSpan(scooter, ImageSpan.ALIGN_BASELINE), label.indexOf("|"), label.indexOf("|") + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  38. ImageSpan val label = "¡Hello | World!" val ss =

    SpannableString(label) val scooter = ContextCompat.getDrawable(this, R.drawable.vd_ic_scooter_green) scooter!!.setBounds(0,0,64,96) ss.setSpan(ImageSpan(scooter, ImageSpan.ALIGN_BASELINE), label.indexOf("|"), label.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss
  39. ImageSpan val label = "¡Hello | World!" val ss =

    SpannableString(label) val scooter = ContextCompat.getDrawable(this, R.drawable.vd_ic_scooter_green) scooter!!.setBounds(0,0,64,96) ss.setSpan(ImageSpan(scooter, ImageSpan.ALIGN_BASELINE), label.indexOf("|"), label.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) binding.label.text = ss