نمایش تگ های html در Textview اندروید

در این آموزش قصد داریم نحوه استفاده و نمایش استفاده از تگ های HTML  در کنترل TextView را بررسی کنیم و ببینیم چه نوع از Tag های HTML در اندروید قابل پشتیبانی میباشند.

 

 

تگ های قابل پشتیبانی در اندروید:

 

<a href=”…”> <b>, <big>, <blockquote>, <br>, <cite>, <dfn>
<div align=”…”>, <em>, <font size=”…” color=”…” face=”…”>
<h1>, <h2>, <h3>, <h4>, <h5>, <h6>
<i>, <img src=”…”>, <p>, <small>
<strike>, <strong>, <sub>, <sup>, <tt>, <u>
 
 
در این مثال) قصد داریم که در کنترل TextView تصاویر همراه با تصویر را نمایش دهیم.برای شروع ابتدا یک Layout بصورت زیر ایجاد کنید،

main_layout.xml
 

 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical" >

<TextView
android:id="@+id/title_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Your HTML text Below"/>

<TextView
android:id="@+id/html_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

</LinearLayout>
 
 
سپس در اکتیویتی و جایی که قرار است تک های html  در کنترل Textview رندر شوند
 

import android.os.Bundle;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.text.Html;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

private final String htmlText = "<body><h1>Heading Text</h1><p>This tutorial " +
"explains how to display " +
"<strong>HTML </strong>text in android text view.&nbsp;</p>" +
"<img src=\"pic.jpg\">" +
"<blockquote>Example from <a href=\"www.p30droid.com\">" +
"Javatechig.com<a></blockquote></body>";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

TextView htmlTextView = (TextView)findViewById(R.id.html_text);
htmlTextView.setText(Html.fromHtml(htmlText, new ImageGetter(), null));

}

private class ImageGetter implements Html.ImageGetter {

public Drawable getDrawable(String source) {
int id;
if (source.equals("pic.jpg")) {
id = R.drawable.hughjackman;
}
else {
return null;
}

Drawable d = getResources().getDrawable(id);
d.setBounds(0,0,d.getIntrinsicWidth(),d.getIntrinsicHeight());
return d;
}
};

}
 
 
شرح کدها :

 
private class ImageGetter implements Html.ImageGetter {

public Drawable getDrawable(String source) {
int id;
if (source.equals("pic.jpg")) {
id = R.drawable.hughjackman;
}
else {
return null;
}

Drawable d = getResources().getDrawable(id);
d.setBounds(0,0,d.getIntrinsicWidth(),d.getIntrinsicHeight());
return d;
}
};
 
 
 
این کلاس برای لود شدن تصویر مورد نظر میشود

فراخوانی کلاس:
 

TextView htmlTextView = (TextView)findViewById(R.id.html_text);
htmlTextView.setText(Html.fromHtml(htmlText, new ImageGetter(), null));
 
 
 
 
 
بازدید 1173 بار آخرین ویرایش در جمعه, 10 ارديبهشت 1395 ساعت 19:29
این مورد را ارزیابی کنید
(0 رای‌ها)
فرزاد سرسیفی

فرزاد سرسیفی توسعه دهنده اندروید و مدیر انجمن برنامه نویسی اندروید هستم 

وبگاه: p30droid.com/
محتوای بیشتر در این بخش: « آشنایی با XML Toolbar در اندروید 5 »

1 نظر

  • محمدی
    ارسال شده توسط محمدی شنبه, 24 تیر 1396 ساعت 09:34 پیوند نظر

    سلام آقای سر سیفی میشه بفرمایید برای حالتی که اصلا نمیدونیم اسم عکس ها چیه چیکار کنیم؟
    مثلا عکس ها از یه آدرس اینترنتی هستن و قبلا با jsoup گرفتیمشون

    گزارش

نظر دادن

جوملا فارسی