gpt4 book ai didi

android - 这对 Sneak Peak 来说可能吗?

转载 作者:行者123 更新时间:2023-11-30 03:03:43 25 4
gpt4 key购买 nike

我有机会拿到一副谷歌眼镜。现在我正在尝试使用 GDK 构建一个简单的应用程序,它执行以下操作:

  • 通过语音命令启动应用程序 (WORKS)
  • 在 API 中搜索问题 (WORKS)
  • 在静态卡片中显示结果(WORKS)
  • 从互联网上加载图像到卡片上(不工作)

什么是行不通的,我想弄清楚今天是否有可能使用我从 Internet 加载的图像显示结果匹配。好像现在做不到?

是否有可能在每张静态卡片上添加一个菜单?有可能导航到结果中的位置。

据我所知,可以从 Mirror API 加载图像,但这是将数据推送到 Google 眼镜,对吗?或者我是否可以从 GDK 内部向 Mirror API 请求数据?

预先感谢您的帮助。

我希望加载图像的代码:

for (int i = 0; i < 10; i++) {
JSONObject advert = adverts.getJSONObject(i);
JSONObject address = advert.getJSONObject("address");
JSONObject companyInfo = advert.getJSONObject("companyInfo");
JSONObject coordinates =
advert.getJSONObject("location").getJSONArray("coordinates").getJSONObject(0);

String companyName = companyInfo.getString("companyName");
String road = address.getString("streetName");

Card card;
card = new Card(activity);

// Here I would like to have images from internet.

card.setText(i+1+". "+companyName);
card.setFootnote("Test");

mCards.add(card);

}

最佳答案

您可以使用 xml 复制卡片 ui,然后使用 LazyList 异步加载它们。我试过了,效果很好!

我使用的 xml 如下。它可能会有所改进,但它确实有效。您可能还需要为页脚添加一个 TextView,因为我没有使用它。您可以在此处找到所有内容的指标 https://mirror-api-playground.appspot.com/assets/css/base_style.css或用 Firebug 或类似工具检查 Playground https://developers.google.com/glass/tools-downloads/playground

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<LinearLayout
android:id="@+id/llImages"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="360px"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:visibility="gone">

<ImageView
android:id="@+id/ivImage1"
android:layout_width="240px"
android:layout_height="0dp"
android:layout_weight="1"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:visibility="gone"/>

<LinearLayout
android:id="@+id/llSecondaryImages"
android:orientation="horizontal"
android:layout_width="240px"
android:layout_height="0dp"
android:layout_weight="1"
android:visibility="gone">

<ImageView
android:id="@+id/ivImage2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:visibility="gone"/>

<ImageView
android:id="@+id/ivImage3"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:visibility="gone"/>

</LinearLayout>

</LinearLayout>

<TextView
android:id="@+id/tvMainText"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="34sp"
android:layout_toRightOf="@+id/llImages"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignWithParentIfMissing="true"
android:layout_marginRight="40px"
android:layout_marginTop="10px"
android:layout_marginBottom="40px"
android:layout_marginLeft="30px"
android:maxLines="5"
android:singleLine="false"
android:ellipsize="end"/>

</RelativeLayout>

唯一的区别是主文本不会根据其长度调整大小。我试过 3 个不同的库,但它们没有按预期工作,但如果你愿意,可以随意改进它。您还会注意到主文本的 margin-top 设置为 10px 而不是 playground css 的 40px。那是因为我在佩戴 Glass 时看到了一些额外的余量。

从适配器使用它就像下面这样。我知道它可以改进,但这只是为了让您了解如何做 ;)

@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View rowView = convertView;

if(rowView == null)
{
LayoutInflater inflater = context.getLayoutInflater();

rowView = inflater.inflate(R.layout.custom_card, null);

CustomRowViewHolder viewHolder = new CustomRowViewHolder();
viewHolder.tvMainText = (TextView) rowView.findViewById(R.id.tvMainText);
viewHolder.ivImage1 = (ImageView) rowView.findViewById(R.id.ivImage1);
viewHolder.ivImage2 = (ImageView) rowView.findViewById(R.id.ivImage2);
viewHolder.ivImage3 = (ImageView) rowView.findViewById(R.id.ivImage3);
viewHolder.llImages = (LinearLayout) rowView.findViewById(R.id.llImages);
viewHolder.llSecondaryImages = (LinearLayout) rowView.findViewById(R.id.llSecondaryImages);

rowView.setTag(viewHolder);
}

CustomClass cc = values.get(position);

CustomRowViewHolder holder = (CustomRowViewHolder) rowView.getTag();

holder.tvMainText.setText(cc.getDescription());

if(!cc.getFiveLastPhotos().isEmpty())
{
holder.llImages.setVisibility(ImageView.VISIBLE);
holder.ivImage1.setVisibility(ImageView.VISIBLE);

ImageLoader.getInstance(context.getApplicationContext()).DisplayImage(cc.getFiveLastPhotos().get(0).getSrcPhoto(), holder.ivImage1, null, ImageLoader.NO_ANIMATION);

if(cc.getFiveLastPhotos().size()>1)
{
holder.llSecondaryImages.setVisibility(ImageView.VISIBLE);
holder.ivImage2.setVisibility(ImageView.VISIBLE);

ImageLoader.getInstance(context.getApplicationContext()).DisplayImage(cc.getFiveLastPhotos().get(1).getSrcPhoto(), holder.ivImage2, null, ImageLoader.NO_ANIMATION);

if(cc.getFiveLastPhotos().size()>2)
{
holder.ivImage3.setVisibility(ImageView.VISIBLE);

ImageLoader.getInstance(context.getApplicationContext()).DisplayImage(cc.getFiveLastPhotos().get(2).getSrcPhoto(), holder.ivImage3, null, ImageLoader.NO_ANIMATION);
}
else
{
holder.ivImage3.setVisibility(ImageView.GONE);
}
}
else
{
holder.ivImage2.setVisibility(ImageView.GONE);
holder.ivImage3.setVisibility(ImageView.GONE);
holder.llSecondaryImages.setVisibility(ImageView.GONE);
}
}
else
{
holder.llImages.setVisibility(ImageView.GONE);
holder.ivImage1.setVisibility(ImageView.GONE);
holder.ivImage2.setVisibility(ImageView.GONE);
holder.ivImage3.setVisibility(ImageView.GONE);
holder.llSecondaryImages.setVisibility(ImageView.GONE);
}

return rowView;
}

希望对你有帮助,有什么建议欢迎留言

关于android - 这对 Sneak Peak 来说可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22156872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com