android通过http协议获得图片

 android通过图片网址获得图片并显示在imageView中。

下面就简单的来说明操作过程:

首先必须在布局文件中声明imageView控件:

<ImageView 
android:id="@+id/image" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" />

还必须在清单文件中加入访问网络的权限:

<uses-permission android:name="android.permission.INTERNET" />

其次:用一个service类来实现访问http协议,并且获得链接的返回值这个过程:htmlPath是图片的网络地址

public class PageService { 
/**@description:获取图片的数据 
* @author:Administrator 
* @return:byte[] 
* @param htmlpath 
* @return 
* @throws Exception 
*/ 

public static byte[] getImage(String htmlpath) throws Exception { 
byte[] imagearray = null; 
URL url = new URL(htmlpath); 
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
conn.setConnectTimeout(5000); 
// conn.setRequestMethod("GET"); 
conn.connect(); 
if (conn.getResponseCode() == 200) { 
byte[] buffer = new byte[1024]; 
ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream(); 
int len = 0; 
InputStream inputStream = conn.getInputStream(); 
while ((len = inputStream.read(buffer)) != -1) { 
arrayOutputStream.write(buffer, 0, buffer.length); 

imagearray = arrayOutputStream.toByteArray(); 

return imagearray; 



最后在activity中启用一个线程来调用这个业务方法,并在handler中对UI进行更新:(必须实现线程否则会出错,这是和3.0版本之前不同的地方)

public class MainActivity extends Activity { 
private EditText strpath; 
private TextView htmlcontent; 
private ImageView imageview; 
Handler handler=new Handler(){ 

@Override 
public void handleMessage(Message msg) { 
byte[] data=(byte[])msg.obj; 
Bitmap image=BitmapFactory.decodeByteArray(data, 0, data.length); 
imageview.setImageBitmap(image);}

下面是线程中的内容:

private final class ImageThread extends Thread { 

@Override 
public void run() { 
String htmlpath=strpath.getText().toString(); 
htmlpath="shouye_b5486898c692066bd2cbaeda86d74448.gif"; 
byte[] htmlarray=null; 
try { 
htmlarray=PageService.getImage(htmlpath); 
} catch (Exception e) { 
e.printStackTrace(); 

Message msg=new Message(); 
msg.obj=htmlarray; 
msg.what=1; 
handler.sendMessage(msg); 

}

最后用点击一个button来触发获取图片的事件:

private final class ButtonClickListener implements View.OnClickListener { 

@Override 
public void onClick(View v) { 
ImageThread thread=new ImageThread(); 
thread.start(); 

}

好了,介绍完毕。

最后如果获取的内容为html页面的内容的话,如果内容过长,就需要用滚动条来显示:

可以在TextView外面加上ScollView加载滚动条:

<ScrollView 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" > 

<TextView 
android:id="@+id/htmlcontent" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" /> 
</ScrollView>  

时间: 2024-11-08 19:18:24

android通过http协议获得图片的相关文章

Android通过HTTP协议实现上传文件数据_Android

本文实例为大家分享了Android通过HTTP协议实现上传文件数据的具体代码,供大家参考,具体内容如下 SocketHttpRequester.java package cn.itcast.utils; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.InputStream; import java.io.Inp

Android基于Http协议实现文件上传功能的方法_Android

本文实例讲述了Android基于Http协议实现文件上传功能的方法.分享给大家供大家参考,具体如下: 注意一般使用Http协议上传的文件都比较小,一般是小于2M 这里示例是上传一个小的MP3文件 1.主Activity:MainActivity.java public class MainActivity extends Activity { private static final String TAG = "MainActivity"; private EditText timel

Android 通过网络图片路径查看图片实例详解

Android 通过网络图片路径查看图片实例详解 1.在项目清单中添加网络访问权限 <!--访问网络的权限--> <uses-permission android:name="android.permission.INTERNET"/> 2.获取网络图片数据 /** * 获取网络图片的数据 * @param path 网络图片路径 * @return * @throws Exception */ public static byte[] getImage(Str

[Android] 触屏setOnTouchListener实现图片缩放、移动、绘制和添加水印

    前一篇文章讲述了Android实现图片Matrix矩阵类缩放.旋转.对比度.亮度.饱和度处理,但是真正的图片软件都是使用触屏实现图片缩放.移动.添加水印等功能,所以该篇文章主要通过setOnTouchListener监听实现该功能.希望文章对大家有所帮助. 一.图片缩放实现     首先先简单介绍Android如何实现触屏缩放图片和移动图片,新建TouchImageViw工程.设计XML中activity_main.xml布局: <RelativeLayout xmlns:android

Android把左边布局的图片拖放到右边布局怎么实现?

问题描述 Android把左边布局的图片拖放到右边布局怎么实现? 左边右边各有一个布局,把左边布局的一张图片拖动到右边布局里.之前尝试过用Android 的Drag and Drop,只能在布局内进行拖动图片,是我没用对还是就只能这样?那应该怎么实现?求大神 解决方案 http://bbs.csdn.net/topics/391902815 解决方案二: 有没有效果图,发出来看看,然后帮助你 解决方案三: 把下面的棋子拖到上面的棋盘上.多个棋子都可以自由移动.

Android ListView滑动过程中图片显示重复错乱闪烁的原因及解决方法

主要分析Android ListView滚动过程中图片显示重复.错乱.闪烁的原因及解决方法,顺带提及ListView的缓存机制. 1.原因分析 ListView item缓存机制:为了使得性能更优,ListView会缓存行item(某行对应的View).ListView通过adapter的getView函数获得每行的item.滑动过程中, a. 如果某行item已经滑出屏幕,若该item不在缓存内,则put进缓存,否则更新缓存: b. 获取滑入屏幕的行item之前会先判断缓存中是否有可用的ite

android-Unity3D与Android项目结合时出现图片丢失的现象

问题描述 Unity3D与Android项目结合时出现图片丢失的现象 原本的Android APK单独运行测试时是不会出现错乱的问题把项目的导出jar.res.libs.xml放入Unity3D结合编译后,进入Android编写的activity中原本设置的背景图片突然变成了Unity3D的标志,其他的一部图案也出现了丢失偏移的现象图片统一放在res下的drawable目录中 求问各位大神是否遇见过类似问题,应该如何解决 解决方案 unity3d显示不了android setimageResou

Android ListView滑动过程中图片显示重复错位闪烁问题解决

主要分析Android ListView滚动过程中图片显示重复.错乱.闪烁的原因及解决方法,顺带提及ListView的缓存机制.1.原因分析ListView item缓存机制:为了使得性能更优,ListView会缓存行item(某行对应的View).ListView通过adapter的getView函数获得每行的item.滑动过程中, a. 如果某行item已经滑出屏幕,若该item不在缓存内,则put进缓存,否则更新缓存: b. 获取滑入屏幕的行item之前会先判断缓存中是否有可用的item,

小米手机-Android 从媒体库取出图片发送的问题

问题描述 Android 从媒体库取出图片发送的问题 先上代码 Intent picture = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(picture, IMAGE); 然后在onActivityResult方法中 if (requestCode == IMAGE && resultCode =