我想将图像显示为从servlet到android app的布尔值。 Servlet将上传到谷歌应用引擎。 这是我的servlet。 “arrBool”值显示为一些随机值。
//
resp.setContentType("text/plain");
if (req.getParameterMap().containsKey("message"))
message = req.getParameter("message");
resp.getWriter().println("Server Said" + message);
for (int i=0; i<arrBool.length; i++) {
arrBool[i] = r.nextBoolean();
if(arrBool[i]==true) {
resp.getWriter().print(arrBool);
}
}
这是我的android应用程序文件:
//
RestClient client = new RestClient("http://machougul01.appspot.com/listenforrestclient");
client.AddParam("message", "Hello two World");
// client.AddParam("arrBool", "textView1");
try
{
client.Execute(RequestMethod.GET);
}
catch (Exception e)
{
textView.setText(e.getMessage());
}
String response = client.getResponse();
textView.setText(response);
}
输出显示“服务器说:你好两个世界”和arrBool值:“m9a9990a m9a9990” 我想将arrBool值设置为图像而不是m9a9990a。因此,如果选择了随机值,则如果为真,那么将从6中的1到6显示汽车数量。 请帮帮我。
答案 0 :(得分:0)
尝试更改
resp.getWriter().print(arrBool);
到
。resp.getWriter()打印(将String.valueOf(arrBool));
它会在你的回复中写一个字符串。
或者你可以改变这个
for (int i=0; i<arrBool.length; i++) {
arrBool[i] = r.nextBoolean();
if(arrBool[i]==true) {
resp.getWriter().print(arrBool);
}
}
要
for (int i=0; i<arrBool.length; i++) {
arrBool[i] = r.nextBoolean();
if(arrBool[i]==true) {
resp.getWriter().print(1);
}
}
因此,当您在客户端阅读回复时,您将获得响应行 “服务员说:你好两个世界” 111
然后你可以解析字符串,没有1或者是真的,显示或
答案 1 :(得分:0)
您需要做一些事情。
首先,您需要一些导入语句。也许你可以为base64使用apache commons,这个例子使用xerces。
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
接下来,你需要用布尔值创建一个图像:
BufferedImage image = new BufferedImage(wid,hgt,BufferedImage.TYPE_3BYTE_RGB);
final int BLACK = java.awt.Color.BLACK.getRGB();
final int WHITE = java.awt.Color.WHITE.getRGB();
for(int x = 0; x < wid; x++) {
for(int y = 0; y < hgt; y++) {
boolean val = array[x*wid + y];
image.setRGB(x,y, val ? BLACK : WHITE);
}
}
我可能在那里使用了二进制图像。这就是我随便知道的:)我相信你可以修补它来改变格式。
然后你需要将它转换为Base64
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] bytes = out.toByteArray();
String imageText = Base64.encode(baos.toByteArray());
然后,您需要吐出一些引用该基础64的HTML:
String html = "<img src=\"data:image/bmp;" + imageText + "\" alt=\"Random booleans\">";
并在你的页面上吐出那个html,你应该全力以赴!