java - 如何使用 Java 服务器将图像发送到 Android 设备

标签 java android image sockets byte

我正在尝试使用托管在我的计算机上的 Java 服务器将图片发送到 Android 设备。但是当图片到达手机时,它被剪切了:可以读取小图片(4ko),但对于 43ko 图片,只能看到图片的三分之一。

服务器:

File f = new File("img.jpg");
BufferedImage buffer = ImageIO.read(f); 

ServerSocket server = new ServerSocket(port);
Socket sock = server.accept();

ImageIO.write(buffer,"JPG",sock.getOutputStream()); 

安卓:

@Override
protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);

     try {
         StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
         StrictMode.setThreadPolicy(policy);

         Socket sock = new Socket(ip, port);

         Drawable d = new BitmapDrawable(getResources(), BitmapFactory.decodeStream(sock.getInputStream()));

         ImageView iv = findViewById(R.id.iv);

         iv.setImageDrawable(d);

    } catch (IOException e) {
         e.printStackTrace();
    }

}

最佳答案

使用任何 ImageView 库来预览图像。希望它能工作

关于java - 如何使用 Java 服务器将图像发送到 Android 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61868057/

相关文章:

java - 在 EditTextPreference 上设置输入类型

java - Java中的图像黑点补偿

java - BeanPostProcessor 示例

android - 键入电子邮件文本 android

android - Android 动态偏好列表下的嵌套 PreferenceScreens

c# - 将 System.Drawing.Image 转换为 System.Data.Linq.Binary

java - 在 JEditorPane 中的文本之间添加图像

java - 未使用的私有(private)变量可以在其持有实例之前被 GC 吗?

java - javadoc 中接口(interface)方法与类方法的可访问性说明符

java - 将通用类注释为 JSF 托管 bean