将捕获的图像从Java发送到Android时出错
我有用java从屏幕捕获图像的代码,我有最终捕获的图像作为BuffereImage对象,并可以将其转换为ImageIcon 问题是,当将该文件发送到android时,无法将其读取为可绘制位图。有人对此有答案吗 要发送的代码(Java) 安卓接收机部分将捕获的图像从Java发送到Android时出错,java,android,sockets,Java,Android,Sockets,我有用java从屏幕捕获图像的代码,我有最终捕获的图像作为BuffereImage对象,并可以将其转换为ImageIcon 问题是,当将该文件发送到android时,无法将其读取为可绘制位图。有人对此有答案吗 要发送的代码(Java) 安卓接收机部分 Thread t= new Thread(new Runnable() { @Override public void run() { while (true) {
Thread t= new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
client= sc.accept();
is = client.getInputStream();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
BitmapDrawable imageIcon = null;
try {
ois = new ObjectInputStream(is);
imageIcon = (BitmapDrawable) ois.readObject();
//Drawable d = Drawable.createFromStream(is, null);
IV.setImageDrawable(imageIcon);
} catch (OptionalDataException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("New image recieved");
}
}
我得到一个例外,它不能将imageIcon或BuffereImage强制转换为位图可绘制。你不应该使用对象,因为oracle jvm与android的dalvik不同。 尝试将捕获的图像转换为原始字节,并将这些字节发送到android。然后在android中,将这些原始数据转换为可绘制的
Thread t= new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
client= sc.accept();
is = client.getInputStream();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
BitmapDrawable imageIcon = null;
try {
ois = new ObjectInputStream(is);
imageIcon = (BitmapDrawable) ois.readObject();
//Drawable d = Drawable.createFromStream(is, null);
IV.setImageDrawable(imageIcon);
} catch (OptionalDataException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("New image recieved");
}
}