`
iaiai
  • 浏览: 2204885 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android TextView 显示网络图片

 
阅读更多
package com.iaiai;

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;

import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.text.Html;
import android.text.Html.ImageGetter;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import com.hilary.utils.AsyncImageLoader;

/**
 * 
 * <p>
 * Title: Main.java
 * </p>
 * <p>
 * E-Mail: 176291935@qq.com
 * </p>
 * <p>
 * QQ: 176291935
 * </p>
 * <p>
 * Http: iaiai.iteye.com
 * </p>
 * <p>
 * Create time: 2011-10-26
 * </p>
 * 
 * @author 丸子
 * @version 0.0.1
 */
public class Main extends Activity {
	Button btn2;
	ImageView imge;
	Thread thread = null;
	Runnable runnable = null;
	TextView textView = null;
	 Drawable dra = null;
	private AsyncImageLoader asyncImageLoader;
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		asyncImageLoader = AsyncImageLoader.getAsyncImageLoader();
		btn2 = (Button) findViewById(R.id.btn2);
		textView = (TextView) findViewById(R.id.show_tv);
		btn2.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				Handler handler = new Handler();
//				handler.post(runable);
				textView.setText(Html.fromHtml( _readFile("/sdcard/test2.txt"), imgGetter, null));
			}
		});
	}
	
	public String _readFile(String str) {
		StringBuffer sb = new StringBuffer();
		File file = new File(str);
		try {
			FileReader is = new FileReader(file);
			while (is.ready()) {
				int c = is.read();
				sb.append((char) c);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		return sb.toString();
	}
	
	ImageGetter imgGetter = new Html.ImageGetter() {

		@Override
		public Drawable getDrawable(String source) {
			System.out.println("***" + source);
			//异步加载图片
//			 Drawable drawable = asyncImageLoader.loadDrawable(
//					source, new ImageCallback() {
//
//						@Override
//						public void imageLoaded(Drawable imageDrawable,
//								String imageUrl) {
//							 if (imageDrawable == null) {
//							 } else {
//								 imageDrawable.setBounds(0, 0, imageDrawable.getIntrinsicWidth(), imageDrawable   
//						                    .getIntrinsicHeight()); 
//							 }
//							 dra = imageDrawable;
//						}
//					});
//			if(source.equals("1")){
//				drawable = Main.this.getResources().getDrawable(R.drawable.aa);
//			} else if (source.equals("2")){
//				drawable = Main.this.getResources().getDrawable(R.drawable.b);
//			} else {
//				drawable = Main.this.getResources().getDrawable(R.drawable.icon);
//			}
			URL url;  
			Drawable drawable = null;
            try {  
                url = new URL(source);  
                drawable = Drawable.createFromStream(url.openStream(), "");  
            } catch (Exception e) {  
                return null;  
            }  

			drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable   
                    .getIntrinsicHeight()); 
			return drawable;
		}   
		
	};

}
分享到:
评论
1 楼 sd6733531 2011-11-10  
ImageGetter是个同步方法。用它来下载网络图片不合适,设置本地资源比较靠谱点。

相关推荐

    Android TextView显示html的demo

    若要显示网络图片,你需要自定义`ImageGetter`接口来下载并加载图片,如下: ```java textView.setMovementMethod(LinkMovementMethod.getInstance()); textView.setText(Html.fromHtml(htmlString, new ...

    Android-TextView-富文本-html图片显示.rar

    为了显示网络图片,我们需要自定义一个 `ImageGetter` 类,并重写其 `getDrawable()` 方法。`getDrawable()` 方法会在解析到 `&lt;img&gt;` 标签时被调用,用于获取图片并返回一个 `Drawable` 对象。 ```java class ...

    android Textview显示带html文本、图片

    在Android开发中,`TextView`是用于展示文本的常用组件,但它的功能并不仅限于显示纯文本。通过一些特殊的技术,我们还可以让`TextView`显示HTML格式的文本,甚至嵌入图片。这个主题主要涉及如何利用`TextView`的...

    android Textview 实现html 图片显示

    总结,针对Android TextView实现HTML图片显示,可以选择WebView方式,它适用于复杂的HTML渲染,而如果只是简单展示图片,使用`Html.fromHtml()`配合自定义`ImageGetter`会更轻量级。两种方法都能实现图片点击的交互...

    Android TextView加载Html中文字、图片

    在Android开发中,TextView是一个非常基础且常用的组件,通常用于显示单行或多行文本。然而,当需要在TextView中加载包含HTML格式的文本时,可能会遇到一些问题,特别是加载HTML中的图片。本文将深入探讨如何在...

    android TextView异步加载HTML(含图片)

    在Android开发中,`TextView` 是一个非常常用的组件,用于显示单行或多行文本。然而,当文本包含HTML格式时,`TextView` 默认是不支持HTML解析和渲染的。为了在`TextView` 中显示带有HTML标签和图片的内容,我们需要...

    androidTextView显示html图片资源实例

    总结一下,Android的TextView可以通过`Html.fromHtml()`和自定义的`ImageGetter`来显示HTML内容中的图片。对于本地资源,需要使用`ImageGetter`来加载和绑定图片;而对于网络资源,`Html.fromHtml()`可以直接处理。...

    TextView加载网络图片HTMLIMG

    总之,要在TextView中加载网络图片,我们需要处理HTML解析、网络请求、图片显示等多个环节。合理选择和使用工具,结合Android原生方法和第三方库,可以实现高效、稳定的图片加载效果。通过实践和优化,我们可以让...

    Android textView显示图片的例子_TextImage-IT计算机-毕业设计.zip

    4. **图片加载库**:在实际开发中,为了提高用户体验和节省内存,我们通常会使用图片加载库如Glide、Picasso或Fresco来加载网络图片。这些库能够自动处理缓存、图片缩放等问题,避免了因加载大图而导致的内存溢出。 ...

    HtmlTextView,在android 3.0或更高版本的textview中显示html代码(特别是处理在互联网上显示图像/图片)。.zip

    HtmlTextView是解决Android TextView显示HTML内容的一个尝试,它在早期版本的Android系统中可能表现出色,但在Android 7.0及更高版本可能需要额外的适配工作。开发者在选择使用时,应该评估其兼容性,考虑使用...

    Android ListView从网络获取图片及文字显示

    从网络加载图片显示到listview上,主函数布局是一个ListView item布局是TextView和ImageView 数量的多少视情况而定 再写一个网络请求数据的类 最后面有代码: ”urlConnection 请求数据类的封装“ 类名一定要一样...

    TextView加载Html图片

    对于更复杂的HTML解析需求,比如支持更多的CSS属性或网络图片,可以使用第三方库,如`jsoup`或`android-html`。这些库提供了更强大的HTML解析和渲染功能。例如,使用`jsoup`: ```java Jsoup.parse(htmlContent)....

    TextView中显示图片的4种方式

    如果你需要更复杂的功能,如动态加载网络图片,或者对图片进行自定义布局,你可以选择继承`TextView`并实现自己的逻辑。在自定义View中,你可以添加`ImageView`作为子视图,并根据需求调整布局和加载图片。 以上四...

    题库类App中比较头疼的公式问题,TextView加载Html,图文混排,Svg图片加载

    1. **TextView加载Html**:在Android中,TextView通常用于显示纯文本,但通过加载Html,我们可以让TextView支持富文本格式,包括内嵌图片、链接、颜色等。使用`Html.fromHtml()`方法可以将Html字符串转换为Spanned...

    在Android TextView中显示图片的4种方式详解

    对于网络图片,需要先下载到本地再显示,可以使用Volley等网络库来处理。 3. 使用SpannableString和ImageSpan 除了HTML解析,还可以使用`SpannableString`和`ImageSpan`来插入图片。首先,将图片转换为`Bitmap`,...

    Android-FlexibleRichTextView可以显示LaTeX图片代码的TextView

    总的来说,`Android-FlexibleRichTextView`是一个强大的工具,它极大地扩展了Android TextView的功能,使得开发者能够更方便地处理富文本,特别是在涉及LaTeX、图片和代码显示的情况下。通过自定义标签,开发者可以...

    安卓Andriod源码——textView显示图片的例子_TextImage.zip

    总结,这个示例代码“textView显示图片的例子_TextImage”主要展示了如何在Android的TextView中集成图片,这对于丰富UI设计、增强用户体验是非常重要的。通过学习和实践,开发者可以更好地理解和掌握TextView的高级...

    Android之TextView实现文字过长时省略部分或者滚动显示

    在Android开发中,`TextView` 是一个非常基础且重要的组件,用于显示文本信息。当文本长度超出`TextView` 的宽度或高度时,开发者通常需要处理如何优雅地展示这些超出的文字,以免破坏应用的视觉效果。本文将深入...

Global site tag (gtag.js) - Google Analytics