1、android怎么在服务器和客户端之间传输图片?
android客户端和java服务端之间可以用socket来传输图片。
服务器端代码:
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class Server02 {
public static void main(String[] args) {
try {
ServerSocket server = new ServerSocket(40000);
Socket socket = server.accept();
DataInputStream dos = new DataInputStream(socket.getInputStream());
int len = dos.available();
System.out.println("len = "+len);
byte[] data = new byte[len];
dos.read(data);
System.out.println("data = "+data);
dos.close();
socket.close();
server.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端代码:
[java] view plaincopy
imageView02 = (ImageView)findViewById(R.id.image02);
button02 = (Button)findViewById(R.id.Button02);
button02.setOnClickListener(new OnClickListener(){
public void onClick(View arg0) {
Socket socket;
try {
socket = new Socket("192.168.1.203",40000);
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.qt);
imageView02.setImageBitmap(bitmap);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//读取图片到ByteArrayOutputStream
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] bytes = baos.toByteArray();
out.write(bytes);
System.out.println("bytes--->"+bytes);
out.close();
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
2、安卓获取服务器图片
使用开源库,ImageLoader可以轻松完成你的需求可以设置加载时显示的图片,加载版失败显示的图片等等权,异步加载图片都是用这个类库的当你设置好缓存和参数后一行代码就搞定ImageLoader.getInstance().displayImage(imageUrl, imageView);或者ImageLoader.getInstance().displayImage(imageUrl, imageView,options); // imageUrl代表图片的URL地址,imageView代表承载图片的IMAGEVIEW控件 , options代表DisplayImageOptions配置文件
3、Android如何从服务器获取图片
直接获取bitmap对象
// 传输网络专图片属
public Bitmap getPic(String uriPic) {
URL imageUrl = null;
Bitmap bitmap = null;
try {
imageUrl = new URL(uriPic);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
HttpURLConnection conn = (HttpURLConnection) imageUrl
.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
}
4、android如何从服务器取多张图片,在本地保存并显示
//获取connection conn = getURLConnection(url); is = conn.getInputStream(); //获取Bitmap的引用 Bitmap bitmap = BitmapFactory.decodeStream(is) //获取长度 int length = (int) conn.getContentLength(); if (length != -1) { byte[] imgData = new byte[length]; byte[] temp=new byte[512]; int readLen=0; int destPos=0; while((readLen=is.read(temp))>0){ System.arraycopy(temp, 0, imgData, destPos, readLen); destPos+=readLen; } bitmap=BitmapFactory.decodeByteArray(imgData, 0, imgData.length); }可能想得不是很完善,专你可以参考属参考。
5、android 从服务器得到图片地址,然后怎么才能将其作为背景显示在响应的控件上imageview
使用开源库,ImageLoader可以轻松完成你的需求
可以设置加载时显示的图片,加载失回败显示的图片等等,异步加答载图片都是用这个类库的
当你设置好缓存和参数后
一行代码就搞定ImageLoader.getInstance().displayImage(imageUrl, imageView);
或者
ImageLoader.getInstance().displayImage(imageUrl, imageView,options);
// imageUrl代表图片的URL地址,imageView代表承载图片的IMAGEVIEW控件 , options代表DisplayImageOptions配置文件
6、android怎么把服务器端的图片拿过来?服务器是电脑.怎么做呢?
看你服务器怎么写的。如果是直接通过url就能访问到图片,直接通过http请求,get或者post都可以,建立一个http连接,get方法获取其输入流,post方法获取返回信息,就能得到图片了。要么就是socket通讯,这个就建立socket连接,根据服务器端协议发送请求,或者每个图片socket接口不一样什么的,完了获取输入流就行了。获取流以后,缓存到sd卡、内部存储空间,或者直接通过软引用缓存到内存中都可以。