网路图片加载方法:
1 ImageGetter中判断图片是否已经加载过,如果本地已经存在直接从本地加载
2 图片本地不存在,开启线程加载图片,下载完毕后,重新调用ImageGetter加载图片
主要代码:
1 TextView加载html
htmlText4 = (TextView) findViewById( R.id.htmlText4); Spanned span = Html.fromHtml( htmlStr,imgGetter2,null ); htmlText4.setText(span);
2 ImageGetter 使用
//加载网络图片 ImageGetter imgGetter2 = new Html.ImageGetter() { @Override public Drawable getDrawable(String source) {//参数为image的src属性 Drawable drawable = null; String photoPath = FileUtils.getPhotoImgPath(); String fileName = FileUtils.getFileName(source ); File imageFile = new File(photoPath,fileName); if(imageFile.exists()){//本地存在直接加载本地图片 //获取本地文件返回Drawable drawable=Drawable.createFromPath( imageFile.getAbsolutePath()); //设置图片边界 // drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); drawable.setBounds(0, 0, 500, 500); }else{//图片没有家再过,则重新加载图片 loadImage(source); } return drawable; } };
3 开启线程加载图片
//加载图片 private void loadImage(final String imageUrl){ new Thread(){ public void run() { Bitmap bitmap = ApiClient.getNetBitmap( imageUrl); String photoPath = FileUtils.getPhotoImgPath(); String fileName = FileUtils.getFileName(imageUrl ); try { ImageUtils.saveImageToSD(HtmlActivity.this, photoPath+"/"+fileName, bitmap, 100); } catch (IOException e) { e.printStackTrace(); } handler.sendEmptyMessage(1); }; }.start(); }
4 图片加载后,重新调用ImageGetter
//加载图片后显示html文字 private Handler handler = new Handler(){ public void handleMessage(android.os.Message msg) { Spanned span = Html.fromHtml( htmlStr,imgGetter2,null ); htmlText4.setText(span); }; };
5 图片保存到本地的路径
/** * 得到图片临时存储路径 * @return */ public static String getPhotoImgPath(){ String savePath = ""; // 判断是否挂载了SD卡 String storageState = Environment .getExternalStorageState(); if (storageState.equals(Environment.MEDIA_MOUNTED)) { savePath = Environment .getExternalStorageDirectory() + "/Test/Camera/";// 存放照片的文件夹 File savedir = new File(savePath); if (!savedir.exists()) { savedir.mkdirs(); } } return savePath; }
相关推荐
通过一些特殊的技术,我们还可以让`TextView`显示HTML格式的文本,甚至嵌入图片。这个主题主要涉及如何利用`TextView`的特性以及第三方库来实现这一功能。 1. **HTML支持** `TextView`默认支持一部分HTML标签,如`...
5. **使用Webview**:另一种方法是使用WebView控件,它可以完整地解析和显示HTML页面,包括网络图片。但是,Webview比较重,不适合只用来显示简单的HTML片段,且会引入额外的滚动行为,可能影响用户体验。 6. **...
为了在`TextView` 中显示带有HTML标签和图片的内容,我们需要进行一些额外的处理。标题提到的“android TextView异步加载HTML(含图片)”就是一个解决此类问题的方法。 在描述中,我们看到一行代码 `tv.setText...
1. **TextView加载Html**:在Android中,TextView通常用于显示纯文本,但通过加载Html,我们可以让TextView支持富文本格式,包括内嵌图片、链接、颜色等。使用`Html.fromHtml()`方法可以将Html字符串转换为Spanned...
通过以上方式,我们可以利用 `Html.fromHtml()` 结合自定义 `ImageGetter` 实现加载网络图片的功能,从而在TextView中展示富文本内容,提升用户体验。在实际项目中,根据需求可以进一步定制化 `ImageGetter`,比如...
对于图片的显示,`FlexibleRichTextView`支持本地和网络资源,可以方便地插入到文本中。开发者可以通过自定义标签来指定图片的来源、大小以及是否支持点击等交互操作,从而提供丰富的用户体验。 代码的展示部分,`...
在`Html.fromHtml()`中处理这些标签,TextView就能呈现带有颜色、字体和链接的文本了。 综上所述,在TextView中插入图片涉及的关键技术包括HTML标签的使用、`Html.fromHtml()`方法的调用、ImageGetter接口的实现...
String html = "这是带有图片的文本<img src='image.png'></p>"; textView.setText(Html.fromHtml(html, this, new ImageGetter())); ``` 在`getDrawable()`方法中,你需要根据`source`参数去获取图片,并返回一个`...
在Android开发中,有时我们需要在TextView中展示包含HTML格式的内容,比如带有文本样式、超链接以及图片。本教程将详细讲解如何在Android的TextView中解析并显示带图片的HTML数据。 首先,我们来看一下给定的代码...
在Android开发中,有时我们需要在TextView中展示带有丰富格式的内容,如不同的字体颜色、链接以及图片等。这时,我们可以利用Android的TextView与HTML的结合来实现这一需求。下面将详细介绍如何实现这一功能。 首先...
富文本是iOS中用于表示带有样式信息的文本对象,通过`NSAttributedString`类来处理。它可以包含不同的字体、颜色、下划线样式等属性。`NSAttributedStringKey`枚举提供了各种属性键,如`NSFontAttributeName`用于...
此外,对于图片等多媒体内容,可能需要额外处理,比如使用ImageView加载网络图片,这里可以借助Glide或Picasso这样的库来简化操作。 在Demo中,"PraseHtml"可能是项目的主要代码文件或目录,包含了网络请求、HTML...
在移动应用开发中,尤其是在社交、阅读、博客等场景,往往需要展示带有格式、链接、图片、颜色等多样性的文本内容。传统的TextView只能显示基本的纯文本,而富文本解析器则可以解析并呈现这些复杂的格式,极大地提升...
5. TextProgressBar显示文字:TextProgressBar是一种带有进度条的TextView,可以通过设置text属性和progress来显示进度。 6. TextView效果:TextView支持多种显示效果,如字体大小、颜色、对齐方式等,可以通过...
这段代码展示了三个TextView的设置,第一个用于实现走马灯效果,第二个设置中心对齐并带有左右图片,第三个则设置了自动链接,并包含电话、邮件和网址信息。 总之,这个实验提供了全面的Android UI设计和交互实现...
3. **Html.fromHtml()**:这是一个内置方法,可以将HTML代码转换为Spanned对象,从而在EditText或TextView中显示HTML格式的文本。这对于导入和导出富文本非常有用。 4. **插件化架构**:为了实现类似简书的丰富功能...
- **xUtils**:提供网络访问、数据库操作等功能。 #### 59. ListView上拉加载 - **监听器**:监听ListView滚动事件。 - **实现**:当滚动到底部时加载更多数据。 #### 60. JSON与XML区别 - **JSON**:轻量级数据...