0
我怎样才能接收到一个图像,并显示它与Android设备的TCP套接字?我尝试了一些,但不工作。我在寻找一些例如从PC发送的图像或文件并将其保存在手机上(Android及Java)接收图像并用tcp socket显示它? (android)
我怎样才能接收到一个图像,并显示它与Android设备的TCP套接字?我尝试了一些,但不工作。我在寻找一些例如从PC发送的图像或文件并将其保存在手机上(Android及Java)接收图像并用tcp socket显示它? (android)
我用类似的东西从URL中下载图片:
进口java.io. IOException异常; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.util.Log;
import android.widget.ImageView;
public class AsyncDownloadImage extends AsyncTask<ImageView, Void, Bitmap> {
private static final String TAG = "AsyncDownloadImage";
ImageView imageView = null;
@Override
protected Bitmap doInBackground(ImageView... imageViews) {
this.imageView = imageViews[0];
return DownloadImage((String) imageView.getTag());
}
@Override
protected void onPostExecute(Bitmap result) {
if (result != null)
imageView.setImageBitmap(result);
}
private InputStream OpenHttpConnection(String urlString) throws IOException {
InputStream in = null;
int response = -1;
URL url = new URL(urlString);
URLConnection conn = url.openConnection();
if (!(conn instanceof HttpURLConnection))
throw new IOException("Not an HTTP connection");
try {
HttpURLConnection httpConn = (HttpURLConnection) conn;
httpConn.setAllowUserInteraction(false);
httpConn.setInstanceFollowRedirects(true);
httpConn.setRequestMethod("GET");
httpConn.connect();
response = httpConn.getResponseCode();
if (response == HttpURLConnection.HTTP_OK) {
in = httpConn.getInputStream();
}
} catch (Exception ex) {
throw new IOException("Error connecting");
}
return in;
}
private Bitmap DownloadImage(String URL) {
Bitmap bitmap = null;
InputStream in = null;
try {
in = OpenHttpConnection(URL);
bitmap = BitmapFactory.decodeStream(in);
if (in != null)
in.close();
} catch (IOException e1) {
Log.e(TAG, "Error in downloading image");
e1.printStackTrace();
}
return bitmap;
}
}
我用它在的ImageView的标签设置的方式,我想下载,并作为参数传递的ImageView的图像的URL。例如。
ImageView iv.setTag("http://www.example.com/image.png");
new AsyncDownloadImage().execute(iv);
如果你想使用一个插座,你可以像打开一个套接字连接下载:
Socket socket = new Socket(ip, port);
InputStream inputStream = socket.getInputStream();