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卡、內部存儲空間,或者直接通過軟引用緩存到內存中都可以。