Category Archives: クライアントのこと

MusicTweetingアップデート&公開再開

SS000299

はい。ようやく、公開を再開します。
ついでに色々アップデートもしました。
変更点については、ソフトを起動してソフト情報を参照すればわかりますがここにも書いておきます。
今回は全バージョンに比べて大幅に改修をしました。
read more »

スポンサードリンク

アイコン画像を取得するその2と現状報告

前回の記事でTwitterizerでアイコン画像の取得について書きました。
そこで、問題になっていたアイコンが一個ずれて表示される問題ですが色々調べた結果、ImageListを実行する毎にクリアすることで解決しました。
要は、リストビューが更新されなかったときと同様、ImageListの中身も更新されていなかったわけですね~。
以下は修正後のソースコード。

ListViewItem lti = new ListViewItem();
int Imageindex = 0;
Image ia;
imageList1.Images.Clear();
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++);
}
4行目が今回追加したコードです。
これで、正常にTLが表示されるようになりました。



現在、作成中のクライアントはこんな感じになっております。
基本機能はこれで全てそろっておりますので、これでもうクライアントとして機能します。
あとは、画像の取得方法の改善や機能追加、UIの改善などを行っていこうと思っています。
こちらが一段落したら、次はAndroidアプリも作ってみたいですね。

では。

Twitterizerメモ – アイコン画像を取得する

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でアイコンを取得する場合は上記に記したとおりです。

Twitterクライアント制作メモ – ListViewのちらつき

C#でクライアントをぼちぼち作っているわけですが・・・。
TLを取得してリストビューを更新する際に、どうしてもちらつきが発生してしまいます。
個人用途でしたらこれでも良いとは思いますが、なんだか見た目が良くありませんね。
そこで、ちらつきを防止するための方法があります。
read more »

Twitterizerメモ – 非同期処理

Twitterizeで用意されているクラスには、

  • OAuthUtility ・・・ 認証系
  • TwitterUser ・・・ ユーザ情報系
  • TwitterStatus ・・・ ステータス処理系
  • TwitterDirectMessage ・・・ ダイレクトメッセージ処理系
  • TwitterList  ・・・ リスト機能系
  • TwitterSearch ・・・ 検索処理系
  • TwitterFriendship ・・・ 各種フォロワーの情報系
  • TwitterFavorite ・・・ Favorite機能系
  • TwitterTimeline ・・・ タイムライン取得系
が存在するみたいです(参考:[C#]TwitterクライアントライブラリはTwitterizerがイイみたいおちラボ)
今は、その中の
  • OAuthUtility
  • TwitterTimeline
  • TwitterStatus
の三つを使ってクライアントを作っています。
read more »