Android - 语音搜索应用?

时间:2014-03-05 08:00:15

标签: android google-glass google-gdk

我正在尝试使用GDK创建一个简单的Google Glass应用。我有 使用语音命令启动的活动。在那之后,你可以说出你搜索的内容,让我们说你搜索“足球”。

这项活动(或指南中的沉浸式告诉我在Google Glass上调用)确实是在返回JSON数据的API中进行搜索。然后我想解析那些数据并以一堆可以滚动的静态卡的形式将结果呈现给用户。

这一切都有效,但我觉得受GDK的限制,对于静态卡,我无法从一开始就设置应用程序中的图像以外的图像。我希望能够拥有自定义布局的静态卡。这是否有可能就像我现在这样做的那样?

这里的人告诉我它可以做到,但我无法弄清楚如何做到。由于我在Google Glass页面上遇到的所有内容都是文件,因此无法完成。

我还希望功能能够将这些静态卡捆绑在一起并将它们固定到时间轴上,这样您就不需要两次搜索相同的东西了。

有人可以帮我弄清楚我是否在正确的轨道上,或者目前GDK是不可能的。

非常感谢 乔金姆

1 个答案:

答案 0 :(得分:3)

使用CardScrollView并在CardScrollAdapter函数中创建自己的getView,从xml文件中扩充布局并填写所有信息,就像在Android应用中一样。

阅读评论后编辑: 在Adapter课程中添加

public static class ViewHolder{
    public TextView text;
    public ImageView image;
}

并改变

public View getView(int position, View convertView, ViewGroup parent) {
     return mCards.get(position).toView();
}

public View getView(int position, View convertView, ViewGroup parent) {
     ViewHolder holder;
     if(convertView==null) {
         convertView = inflater.inflate(R.layout.mycardlayout, null);
         holder = new ViewHolder();
         holder.text = (TextView) vi.findViewById(R.id.text);
         holder.image=(ImageView)vi.findViewById(R.id.image);
         convertView.setTag( holder );
     } else holder = (ViewHolder) convertView.getTag();

     myObject = getItem(position); //HERE YOU SHOULD MAKE SURE MYOBJECT IS THE CORRECT OBJECT

     holder.text.setText(myObject.getName());
     lazyLoad(holder.image, myObject.getImageUrl()); //USE LAZY LOADING LIBRARY
     return convertView;
}

所以你要做的就是:

  1. 检查getItem

  2. 中是否已实施Adapter
  3. 对图像使用延迟加载(如果是远程图像,看起来就像是这样)

  4. mycardlayout.xml文件夹中创建/layout文件,该文件必须包含ID为TextField的{​​{1}}和带有ID的text ImageView