如何在Google App Engine中显示Android应用程序中的图像?

时间:2013-11-26 11:47:40

标签: android google-app-engine

作为Android开发新手,我必须开发应用程序,其中涉及Google应用程序引擎。我想要做的是我想从谷歌应用程序引擎云中获取图像并在Android应用程序中显示它。我无法将其从云端获取到android。

请帮忙......

谢谢,

3 个答案:

答案 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,你可以将接收到的字符串值插入到这个

中 4,在从android的sqlite数据库中读取显示时,可以将pic存储到byte []中,然后将base64编码的pic解码为另一个byte [],然后将其转换为位图并使用合适的imageview显示它:

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的贡献而备受推崇。