Jetpack Compose'da HTML metnini görüntüleme
Giriş
Herkese merhaba, bu kısa yazıda size Android'de HTML metninin nasıl görüntüleneceğini göstereceğim. Bu makaleyi yazarken, Jetpack compose'un Metin düzenleme özelliği bunu yapmamıza izin vermiyor. Ancak, oluşturma için harika birlikte çalışma desteği sayesinde, html stilindeki metni görüntülemek için TextView veya MaterialTextView'ü kullanabiliriz.
ön koşullar
- AndroidView şekillendirilebilir kullanarak oluşturmada görünümleri kullanma hakkında bilgi.
- Jetpack oluşturma ile nasıl çalışılacağına dair temel bilgiler.
HTML metni, adından da anlaşılacağı gibi, HTML etiketleri kullanılarak biçimlendirilmiş bir metin parçasıdır. Burada dikkat edilmesi gereken çok önemli bir nokta, Android'de tüm etiketlerin desteklenmediğidir. Yalnızca birkaç temel etiket desteklenir.
Android bağlamında HTML metninin kullanımı
Birçok API uç noktası, metin içeriğini depolamak için bu biçimi kullanır. Bir uç nokta, birkaç nedenden dolayı bunu kullanabilir. İşte böyle bir son noktaya bir örnek: Spotify API.
Bir podcast bölümü hakkında bilgi almak için Spotify API'ye istek gönderirken, bölümün açıklamasının düz metin sürümünü sağlamaya ek olarak, açıklamanın html formatlı bir sürümünü de sağlar.
{
.
.
"description" : "........."
"html_description" : ".........."
.
.
}
HTML biçimlendirilmiş metni ayrıştırma
Html biçimli metin içeren bir dizeyi Android'in metin görünümünün kullanabileceği bir şeye ayrıştırmak için HtmlCompactsınıf kullanılabilir. Sınıf , Android'in eski sürümleri için geriye dönük uyumluluk sağlayan sınıfın HtmlCompat bir sürümüdür . Htmlİşte hem Html hem de HtmlCompat sınıfı için sınıf belgeleri.
Yöntem HtmlCompat.fromHtml(), bir Html dizesini Android'in TextView veya MaterialTextView ile kullanılabilen bir Spanned nesnesine dönüştürmek için kullanılabilir. İşlevin ilk bağımsız değişkeni kaynak dizedir ve ikinci bağımsız değişken, işlevin ayrıştırma davranışını özelleştirmek için kullanılabilecek belirli işaretleri belirtmenize olanak tanır. Her bayrağın kullanımının açıklanması bu makalenin kapsamı dışındadır. Herhangi bir bayrak belirtmemiz gerekmiyorsa, sadece 0'ı geçebiliriz.
// parsing html string using the HtmlCompat class
val spannedText = HtmlCompat.fromHtml(sourceString, 0)
Metin dönüştürüldükten sonra, onu görüntülemek için TextView'e iletebiliriz. Oluşturma kullandığımız için, TextView'ü bir oluşturulabilir olarak kullanmak için AndroidView oluşturulabilirini kullanacağız.
AndroidView(
modifier = modifier,
factory = { MaterialTextView(it) },
update = { it.text = spannedText }
)
Bonus! — Bağlantıları tıklanabilir yapın!
autoLinkMask Metinde herhangi bir bağlantı varsa, özelliği Linkify.WEB_URLS ayarlayarak ve özelliği doğru olarak ayarlayarak tıklanabilir hale getirebiliriz linksClickable.
AndroidView(
modifier = modifier,
factory = {
MaterialTextView(it).apply {
// links
autoLinkMask = Linkify.WEB_URLS
linksClickable = true
// setting the color to use forr highlihting the links
setLinkTextColor(Color.White.toArgb())
}
},
update = {
it.maxLines = currentMaxLines
it.text = text
}
)
Çözüm
Ve bu, bu kısa blog gönderisini tamamlıyor! Milyonlarca başka şey yapıyor olabilirdin, ama Jetpack oluşturmada bir HTML metninin nasıl görüntüleneceğini öğrenmek için oturup bu makaleyi okumaya karar verdin. Android geliştirme konusundaki becerilerinizi geliştirmeye kararlı olduğunuzu gösterir! Umarız bu blog gönderisini faydalı bulmuşsunuzdur! Bu makaleyi beğendiyseniz, buraya tıklayarak diğer makalelerime göz atabilirsiniz . Her zaman olduğu gibi, bu makaleyi okumak için zaman ayırdığınız için teşekkür etmek istiyorum. Sana iyi şanslar diliyorum! Mutlu kodlamalar ! Şerefe!

![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































