获取远程文章内容时,显示图片的两种方式

第一种:

通过Html.fromHtml(String,ImageGetter,tagHandler)

CharSequence text = Html.fromHtml(capter, new ImageGetter() {                    
                    @Override
                    public Drawable getDrawable(String source) {
                        Drawable drawable = null;
                        try {
                            drawable = Drawable.createFromStream(new URL(source).openStream(),"image");//从远程获取图片
                            drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());//要设置边界信息  Drawable本身是没有边界信息的
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                        return drawable;
                }}, null);

capter_view= (TextView)findViewById(R.id.bookcapter);

capter_view.setText(text);//就可以显示出img的图片信息了(推荐)

第二种:

这个需要服务端配合,服务端需要将图片和文字信息在服务端分割开,同时给index来标示位置(为了解决内容分割后不会交叉,客户端可以按index按原来的顺序来排列显示)

服务端返回的是以图片img标签分割的json数组(这个操作android端应该也可以做)

客户端遍历json数组显示

如果是img的类型则创建ImageView来显示img

如果是text的类型则创建TextView来显示text

这块操作可以封装成 继承LinearLayout 的自定义TestView控件

然后把json数组转成List<HashMap<key,value>> datas;

模拟TextView的setText方法,我们也可以自定义一个setText(),当然你也可以定义其他名称,这个方法不是重写,所以随便自定义。

在这个方法里遍历数据生成ImageView或TextView

最后通过调用TestView.setText(datas);

就可以显示出来图片了

(但服务端的数据结构需要和客户端协议好,数据格式固定,个人觉得不是很灵活。)

时间: 2024-08-01 10:45:53

获取远程文章内容时,显示图片的两种方式的相关文章

设置背景图片的两种方式,并解决手机端背景图片高度自适应问题

1 设置背景图片的两种方式: 方式一: <img src="../img/10.jpg"/ class="back" id="Background"> .back{ position: fixed; width: 100%; height: 100%; display: block; z-index: -100; } 方式二:div class="body" id="Background">

Simics虚拟机Solaris 8操作系统获取host 系统win7上的文件的两种方式

1 介绍 本文基于的环境设置如下: ? 宿主操作系统:Windows 7 Ultimate ? 寄生操作系统:Solaris 8 SPARC (SunOS 5.8) ? 虚拟环境:Simics 3.0.4 本文假定已在Simics 上安装好Solaris 8 SPARC 操作系统. 动机:一个Unix下可以运行的二进制文件GraphGen,在单独的一台装有Ubuntu的电脑上不能运行,因为该电脑的硬件架构是基于X86的,而GraphGen是SPARC架构下才能运行的程序:在我的笔记本Win7系统

python 读取并显示图片的两种方法

在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片.本人偏爱 matpoltlib,因为它的语法更像 matlab. 一.matplotlib 1. 显示图片 import matplotlib.pyplot as plt # plt 用于显示图片 import matplotlib.image as mpimg # mpimg 用于读取图片 import numpy as np lena = mpimg.imread('lena.png')

UIImage创建图片的两种方式的区别

在工作中经常会遇到添加图片,用哪种方式添加更好呢?请看详解 方法一: UIImage *image = [UIImage imageNamed:@"haha"]; 这种方法创建的图片是从缓存中获取的,程序会先从缓存中查找是否有这张图片,如果有的话就加载,如果没有的话,会将图片添加到缓存再使用.这样的创建方式一般用于经常使用的使用,因为从缓存中添加图片会更快一些,节省时间.但是缺点是一旦添加到缓存中就不会被释放,如果图很多很大需要占用很多很大的内存空间. 方式二: NSString *p

UIImage加载本地图片的两种方式

UIImage加载图片方式一般有两种: (1)imagedNamed初始化:默认加载图片成功后会内存中缓存图片,这个方法用一个指定的名字在系统缓存中查找并返回一个图片对象.如果缓存中没有找到相应的图片对象,则从指定地方加载图片然后缓存对象,并返回这个图片对象. (2)imageWithContentsOfFile初始化:则仅只加载图片,不缓存. 大量使用imageNamed方式会在不需要缓存的地方额外增加开销CPU的时间来做这件事.当应用程序需要加载一张比较大的图片并且使用一次性,那么其实是没有

添加图片的两种方式

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>js练习 js是脚本语言直接运行在浏览器上的.</title> <script type="text/javascript"> function addcontent(){ document.getElementById(&q

button上加上图片的两种方式

////  ViewController.m//  UIButtonDemo////  Created by hehe on 15/9/15.//  Copyright (c) 2015年 wang.hehe. All rights reserved.// #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad {   

HttpURLConnection下载图片的两种方式

public class MainActivity extends AppCompatActivity { private ImageView iv; private String imageurl = "http://img06.tooopen.com/images/20161106/tooopen_sl_185050524199.jpg"; private Bitmap bitmap; @Override protected void onCreate(Bundle savedIn

iOS 获取Interface Builder上的子控制器的两种方式

原创Blog,转载请注明出处 blog.csdn.net/hello_hwc 准备工作 Storyboard上为一个ViewController拖拽两个子控制器,并且设置两个segue的identifier分别为childvc1,childvc2 效果 方式一,根据segue的identifier来判断获得 #import "ViewController.h" #import "ChildViewController1.h" #import "ChildV