TextView格式化HTML样式

public class MainActivity extends Activity {

public int getResourceId(String name){
try{
//根据资源的ID的变量名获得Field的对象,使用反射机制来实现的
Field field = R.drawable.class.getField(name);
//取得并返回资源的ID的字段(静态变量)的值,使用反射机制
System.out.println(Integer.parseInt(field.get(null).toString()));
return Integer.parseInt(field.get(null).toString());
} catch (Exception e){

}
return 0;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = (TextView)this.findViewById(R.id.textview);
textView.setTextColor(Color.BLACK);
textView.setBackgroundColor(Color.WHITE);
textView.setTextSize(20);
String html = "图像1<img src='image1'/>图像2<img src='image2'/><br/>";
html += "图像3<img src='image3'/>图像4<a href='http://www.baidu.com'><img src='image4'/></a>";

CharSequence charSequence = Html.fromHtml(html,new ImageGetter(){
@Override
public Drawable getDrawable(String source) {
// TODO Auto-generated method stub
//获得系统资源的信息,比如图片信息
Drawable drawable = getResources().getDrawable(getResourceId(source));
if(source.equals("image3")){
drawable.setBounds(0,0,drawable.getIntrinsicWidth() / 2 ,
drawable.getIntrinsicHeight() / 2);
}else{
drawable.setBounds(0,0,drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight());
}
return drawable;
}
},null);
textView.setText(charSequence);
textView.setMovementMethod(LinkMovementMethod.getInstance());

}

}

效果图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 安卓的TextView组件提供了展示HTML格式代码的功能,使用Html.fromHtml方法可以将HTML格式的字符串转换为Spanned对象,并且可以显示字体样式、颜色、链接等元素。 首先,需要在布局文件中创建一个TextView组件: ``` <TextView android:id="@+id/htmlTextView" android:layout_width="match_parent" android:layout_height="wrap_content" /> ``` 然后,在代码中获取TextView组件的实例,并将HTML代码设置给它: ``` TextView htmlTextView = findViewById(R.id.htmlTextView); String htmlCode = "<b>加粗文本</b>,<font color='#FF0000'>红色文本</font>,<a href='http://www.example.com'>链接文本</a>"; htmlTextView.setText(Html.fromHtml(htmlCode)); ``` 上述代码中,HTML代码包含了加粗文本、红色文本和链接文本。Html.fromHtml方法可以解析这些HTML标签,并将其转换为Spanned对象,随后可以将其设置为TextView的文本内容。 需要注意的是,为了支持链接文本,还需要设置TextView的点击事件,使得用户可以点击链接进行跳转: ``` htmlTextView.setMovementMethod(LinkMovementMethod.getInstance()); ``` 这样,就可以通过TextView完美展示HTML格式的代码了。 ### 回答2: 在安卓中,我们可以使用TextView来展示HTML格式的代码。为了实现完美展示,我们可以采取以下步骤: 1. 在XML布局文件中,将TextView的android:autoLink属性设置为none,这样可以避免链接被自动点击。 2. 在java代码中,使用Html.fromHtml()方法将HTML格式的代码转换为Spanned对象。 例如,假设我们有一个包含HTML格式代码的字符串myHtmlCode,我们可以使用以下代码将其展示在TextView中: ```java String myHtmlCode = "<b>加粗文字</b> <i>斜体文字</i>"; TextView textView = findViewById(R.id.textView); textView.setText(Html.fromHtml(myHtmlCode)); ``` 3. 如果我们想要自定义HTML样式,可以创建一个Html.TagHandler对象并将其传递给Html.fromHtml()方法的第二个参数。 TagHandler可以用于处理HTML标签,并在需要的地方应用自定义样式。例如,我们可以创建一个自定义的TagHandler来处理特定标记,并为其添加特定的样式。 ```java String myHtmlCode = "这是一个<customtag>自定义标签</customtag>"; TextView textView = findViewById(R.id.textView); textView.setText(Html.fromHtml(myHtmlCode, null, new CustomTagHandler())); ``` 这样,TextView就能够完美展示HTML格式的代码了。请注意,为了正常显示HTML代码,我们还需要确保TextView的宽度和高度足够大,以便完整展示所有内容。 ### 回答3: 要想在安卓TextView中完美展示HTML格式的代码,可以借助Html类和fromHtml()方法来实现。 首先,在代码中找到对应的TextView控件,并设置其文本: TextView textView = findViewById(R.id.textView); textView.setText(Html.fromHtml(htmlString)); 其中,htmlString是HTML格式的字符串,可以包含标签、属性和样式等。接下来,需要对TextView进行一些配置,以确保HTML格式的代码能够正确地展示出来。 1. 支持链接点击: textView.setMovementMethod(LinkMovementMethod.getInstance()); 这样,在TextView中的超链接就可以点击了。 2. 支持自定义字体样式: 可以通过使用SpannableStringBuilder类来实现自定义字体样式,例如设置字体颜色、大小等。 3. 支持图片显示: 如果HTML代码中包含图片,可以使用Html.ImageGetter接口和Spanned类的setSpan()方法来显示图片。 总的来说,通过Html类和TextView的fromHtml()方法,可以将HTML格式的代码转换为可显示的文本,并根据需要对TextView进行进一步的配置,以完美展示HTML格式的代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值