Twitterizerでアイコンを取得する方法です。
プロフィール画像とTLのアイコンでは取得する方法が微妙に違いますが、プロパティは共通して、ProfileImageLocationを使います。
TLから取得するのを例に取ると、
ListViewItem lti = new ListViewItem(); foreach (TwitterStatus t in res.ResponseObject) { lti = listView1.Items.Add(t.User.ProfileImageLocation); }とします。
しかし、このままではリストビューに画像は表示されず、アイコンのURLが表示されてしまいます。
そこで、アドレスから画像を取得してそれをImagelistに追加して表示します。
(参考:[.NET] [C#] Visual Studio Async CTP を試してみる)
コードは以下の通り。
ListViewItem lti = new ListViewItem(); int Imageindex = 0; Image ia; foreach (TwitterStatus t in res.ResponseObject) { var dlq = WebRequest.Create(t.User.ProfileImageLocation); var dlr = dlq.GetResponse(); imageList1.ImageSize = new Size(18, 18); listView1.LargeImageList = imageList1; ia = Image.FromStream(dlr.GetResponseStream(),false,false); imageList1.Images.Add(ia); lti = listView1.Items.Add("", Imageindex++); }これでとりあえずは表示されます。しかし、これでは問題があります。
それはTLの本文や表示名を一緒に取得してみるとわかるんですが、初回実行では全然問題ないのですが、2回目以降の実行だとユーザー名とアイコンが1個ずれて表示されてしまうのです。
この問題に関しては現在、解決策を模索中です。
とりあえず、Twitterizerでアイコンを取得する場合は上記に記したとおりです。
スポンサードリンク