У меня есть строка с html tags, links, image links, так как лучше всего отобразить эту строку? Я знаю, что люди используют для этого Webview, но, может быть, есть способ сделать это в текстовом представлении, не затрачивая слишком много работы? Поскольку с WebView возникают другие проблемы, например, если вы хотите изменить цвет текста, вам нужно добавить дополнительный стиль к этой строке. Меня интересуют способы сделать ссылки интерактивными и отображать изображения в одном текстовом окне.
Возможный дубликат Как отобразить HTML в TextView?
Это не дубликат, который вы видите, я знаю, как отображать html в текстовом представлении, но как насчет ссылок и их интерактивности с помощью текстового просмотра, а также отображения изображений из ссылки внутри этого текстового представления
Try using this: -
Html.fromHtml("your html code");
Example: -
txtvw.setText(Html.fromHtml("<p align=right> <b> "
+ "Hi!" + " <br/> <font size=6>"
+ " How are you "+"</font> <br/>"
+ "I am fine" + " </b> </p>"));
Output: -
Hi
Как дела
я в порядке
**Full Code With Image And Hyperlink**: -
import android.os.Bundle;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.text.Html;
import android.text.method.LinkMovementMethod;
import android.widget.TextView;
public class MainActivity extends Activity {
String htmlString = "<img src='ic_launcher'><i>Welcome to<i> <b><a href='https://stackoverflow.com/'>Stack Overflow</a></b>";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView htmlTextView = new TextView(this);
setContentView(htmlTextView);
htmlTextView.setText(Html.fromHtml(htmlString, new Html.ImageGetter(){
@Override
public Drawable getDrawable(String source) {
Drawable drawable;
int dourceId =
getApplicationContext()
.getResources()
.getIdentifier(source, "drawable", getPackageName());
drawable =
getApplicationContext()
.getResources()
.getDrawable(dourceId);
drawable.setBounds(
0,
0,
drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight());
return drawable;
}
}, null));
htmlTextView.setMovementMethod(LinkMovementMethod.getInstance());
}
}
To support all API use this function: -
@SuppressWarnings("deprecation")
public static Spanned fromHtml(String html) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
return Html.fromHtml(html, Html.FROM_HTML_MODE_LEGACY);
}
else {
return Html.fromHtml(html);
}
}
как насчет того, чтобы сделать ссылки интерактивными или отображать изображения?
Хороший! еще одна вещь из, я думаю, 27 api fromHtml устарела, будет ли этот подход работать с 27 и выше api?
Каков полный список тегов, которые вы будете использовать в HTML?