`
hilary3113
  • 浏览: 265894 次
  • 性别: Icon_minigender_1
  • 来自: 邯郸
社区版块
存档分类
最新评论

TextView 显示网络图片

阅读更多

TextView 显示本地图片,或访问网络图片资源

 

package com.hilary;

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;

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;
		}   
		
	};

}
 
分享到:
评论

相关推荐

    TextView加载网络图片HTMLIMG

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

    android Textview 实现html 图片显示

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

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

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

    android Textview显示带html文本、图片

    对于网络图片,确保在使用后释放资源,避免内存泄漏。可以使用`Glide`、`Picasso`等图片加载库,它们内置了缓存和内存管理机制。 8. **安全问题** 当从网络接收HTML内容时,务必注意安全问题,防止XSS(跨站脚本...

    Android TextView显示html的demo

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

    TextView中显示图片的4种方式

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

    androidTextView显示html图片资源实例

    然而,TextView不仅可以显示纯文本,还可以通过一些技巧来展示HTML内容,包括其中的图片资源。本实例将详细讲解如何在TextView中加载并显示HTML中的图片,使你的应用具有更丰富的展示效果。 首先,我们需要明白...

    TextView加载Html图片

    - 当处理网络图片时,需要额外的网络权限和图片下载/缓存机制。 综上所述,`TextView`加载HTML图片是Android开发中实现图文混排的一种常见方式,通过自定义`ImageGetter`、使用第三方库等方式,可以满足各种复杂的...

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

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

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

    本示例“安卓Andriod源码——textView显示图片的例子_TextImage.zip”将帮助开发者理解如何在TextView中嵌入图片,使得应用的用户界面更加丰富多彩。 一、TextView与显示图片的基本概念 TextView作为Android SDK中...

    Android TextView加载Html中文字、图片

    同时,对于网络图片,要考虑网络状态和图片大小,避免对用户体验造成负面影响。 此外,Android API 24及以上版本提供了`Html.fromHtml(String source, int flags)`的新方法,其中`flags`参数可以指定一些行为,例如...

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

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

    TextView加载HTML文件显示图片

    如果是网络图片,需要处理网络请求和缓存策略,以优化用户体验和减少不必要的网络负载。 5. 性能优化: `TextView`显示HTML内容可能会影响性能,特别是当HTML内容较大或图片数量较多时。可以通过以下方式优化: -...

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

    总结起来,这个解决方案利用了`TextView`的`fromHtml()`方法和自定义`ImageGetter`来实现HTML文本和网络图片在`TextView`中的异步加载。这种技术在显示富文本内容时非常实用,比如在新闻、博客或邮件应用中。

    TextView如何显示丰富的文本

    3. 图片:通过`ImageSpan`插入图片资源或网络图片。 ```java Drawable drawable = ContextCompat.getDrawable(this, R.drawable.ic_launcher_background); CharSequence textWithImage = "文本 " + new ImageSpan...

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

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

    TextView EditText 插入图片 工具类 包装

    5. 预处理图片,如加载网络图片并缓存。 总的来说,Android开发中在TextView和EditText中插入图片是一项常见的需求,通过封装好的工具类可以使得这一过程变得简单易行。合理利用这些工具,能够帮助开发者更专注于...

    Html.fromHtml加载网络图片

    通过以上方式,我们可以利用 `Html.fromHtml()` 结合自定义 `ImageGetter` 实现加载网络图片的功能,从而在TextView中展示富文本内容,提升用户体验。在实际项目中,根据需求可以进一步定制化 `ImageGetter`,比如...

Global site tag (gtag.js) - Google Analytics