Titanium:ListView加载远程图像

时间:2013-08-10 13:44:34

标签: titanium titanium-mobile

我已经得到了下面的一些代码,它们将用户的Facebook联系人列表及其个人资料图片拉回来,但是每个用户都没有加载图像,只显示少数用户的图像。 / p>

fb.requestWithGraphPath('me/friends', {
        fields : 'first_name,last_name,id,installed,picture.width(120).height(120),gender'
    }, 'GET', function(e) {
        if (e.success) {
            var d = JSON.parse(e.result);
            var pData = [];
            var iData = [];
            var row = d.data;
            row = row.sort(sortByName)
            for (var i = 0; i < d.data.length; i++) {
                var img = row[i].picture.data.url
                if (row[i].installed) {
                    pData.push({
                        properties : {
                            title : row[i].first_name + " " + row[i].last_name,
                            id : row[i].id,
                            image : img,
                            gender : row[i].gender,
                            accessoryType : Ti.UI.LIST_ACCESSORY_TYPE_DISCLOSURE
                        },
                        template : Ti.UI.LIST_ITEM_TEMPLATE_DEFAULT
                    });
                } else {
                    iData.push({
                        properties : {
                            title : row[i].first_name + " " + row[i].last_name,
                            id : row[i].id,
                            image : img,
                            accessoryType : Ti.UI.LIST_ACCESSORY_TYPE_DISCLOSURE
                        },
                        template : Ti.UI.LIST_ITEM_TEMPLATE_DEFAULT
                    });

                }
            }
            var play = Ti.UI.createListSection({
                headerTitle : 'Play with Facebook Friends',
                items : pData
            });

            var invite = Ti.UI.createListSection({
                headerTitle : 'Invite Facebook Friends',
                items : iData
            });
            var listView = Ti.UI.createListView({
                sections : [play, invite],
            });
            self.add(listView)
        } else {
            alert("Facebook Error");
        }
    })

图像存储在var img = row[i].picture.data.url中,并作为image : img的一部分推入数据阵列,但并非所有图像都在加载。

有没有办法强制图像加载?并在加载时显示默认图像?

1 个答案:

答案 0 :(得分:3)

这是一个完整示例的链接,可以完全按照您要完成的内容完成

http://www.clearlyinnovative.com/blog/post/34758524584/alloy-listview-facebook-friends#.UgexZGRATrg