作为Android开发新手,我必须开发应用程序,其中涉及Google应用程序引擎。我想要做的是我想从谷歌应用程序引擎云中获取图像并在Android应用程序中显示它。我无法将其从云端获取到android。
请帮忙......
谢谢,
答案 0 :(得分:1)
您可以利用Google Cloud Endpoints将数据存储区中的数据(包括存储在blobproperty中的图像)发送到您的Android客户端,然后显示它们。您可以阅读谷歌云端点的详细信息,其中还包含示例代码和其他SO线程,以了解如何通过基于端点的rest api在android和appengine数据存储之间建立通信。我在下面仅为blobproperty添加细节,因为文档中没有详细提及:
1,要通过端点发送blobproperty,您需要使用BytesField in protorpc,它会自动将图片发送为 base64 encoded
2,在android中,您定义一个字符串属性,以通过端点接收消息中的字节字段数据
@com.google.api.client.util.Key
private String pic;
3,如果你在android中使用sqlite来本地存储接收到的图像,你应该使用blob类型作为pic列C_PIC +" blob
,你可以将接收到的字符串值插入到这个
byte[] picblob = cursor.getBlob(cursor.getColumnIndex(Yourdatabase.C_PIC));
if (picblob!=null){
byte[] decodedString = Base64.decode(picblob, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
((ImageView)view).setImageBitmap(decodedByte);
}
答案 1 :(得分:0)
您应该使用Google App Engine检查并实施动态图像服务器。
在这里,您可以找到可以轻松移植到Android开发中的Java程序示例https://developers.google.com/appengine/articles/java/serving_dynamic_images
答案 2 :(得分:0)
我对Mahesh的回答犹豫不决,因为虽然它提供了一些客户端代码,但代码还不够,实际上并不能与新库的功能进行比较。
我认为更难的部分将是客户端,因此我认为选择一个好的客户端库非常重要。那么,你应该看看Volley和Picasso,看看你最需要的是什么。
我认为您会发现服务器端比较容易,您也应该看看Google云端存储。
此外,既然你提到你是新手,我会建议你避免自动选择谷歌图书馆/服务的常见错误(在这种情况下是凌空抽射)。谷歌图书馆通常不如人们期望的那么好(并且预期的文档会更差)。我没有使用毕加索,但它来自Square,他们因为对Android的贡献而备受推崇。