优化Glass上的大量卡片

时间:2014-03-03 20:56:02

标签: android optimization google-glass

我正在使用GDK在Glass上构建一个应用程序,该应用程序具有大量数据集供用户浏览。 (有一个语音输入组件,但我想有一个手动选择部分,因为语音不适用于每个数据点。)

我按照推荐的方式生成卡片,将带有一些文本的卡片推送到ArrayList,然后使用示例卡片适配器显示卡片。但是,在卡片之间滑动时,系统似乎很难生成许多卡片和滚动滞后。

此外,使用文档中的示例适配器,即使是一组带有文本和图像的六张卡片似乎也会滞后。

对于其他开发人员,您采取了哪些措施来优化数据集以防止任何潜在的延迟?

这是生成卡片的一些代码。我正在使用分页来显示少量卡片。 (最大 - 最小<= 50)。生成需要一些时间,因此系统不会给出任何正在发生的事情的指示。

public ArrayList<Card> getRange(int min, int max) {
    ArrayList<Card> cardStack = new ArrayList<Card>();
    Card prev = new Card(getApplicationContext());
    prev.setText("Loading a lot of Pokemon... hang on");
    setContentView(prev.toView());
    try {
        JSONArray wholedex = new JSONObject(loadJSONFromAsset()).getJSONArray("Data");
     //Save time by only reading the items we want. There are ~760 items, so 40 more than regular dex number
        for(int i=min-1;i<max+50;i++) {
            if(i > wholedex.length())
                continue;
            try {

                pkmn = new Pokemon(wholedex.getJSONObject(i));
                if(pkmn.getPokedexnumber() == min)
                    browseMin = i;
                if(pkmn.getPokedexnumber() >= min && pkmn.getPokedexnumber() <= max) {
                    Card temp = new Card(getApplicationContext());
                    temp.setText(pkmn.getPokedexnumber()+"   "+pkmn.getName());
                        cardStack.add(temp);
                }
            } catch(Exception e) {
                Log.d("Pokedex", e.getMessage());
            }
        }
        return cardStack;
    } catch (JSONException e) {
        e.printStackTrace();
    }
    return null;
 }

0 个答案:

没有答案