Androidアプリ製作の練習がてらTwitterクライアントを作ってるんですが、画像表示で悩んだのでメモ。
便利なライブラリ
Androidでインターネット上の画像を表示するのは結構面倒なので以下のライブラリを使用すると楽。
Twitterのタイムラインから画像を取得する
Twitterの各ツイートから画像のURLを取得するのは以下のようにする。
MediaEntity[] mediaEntitys = item.getExtendedMediaEntities(); List list = new ArrayList(); for( int i = 0; i < mediaEntitys.length; i ++ ){ MediaEntity mediaEntity = mediaEntitys[i]; String mediaURL = mediaEntity.getMediaURL(); list.add(mediaURL); }
これでlistにURLが格納される。
Twitterのタイムラインに画像を表示する
取得したURLをタイムラインにサムネイル表示させる。
SmartImageView image = (SmartImageView) convertView.findViewById(R.id.image); String[] medias = ( String[] )list.toArray( new String[0] ); for (int i=0;i<medias.length;i++) { image.setImageUrl(medias[i]); Log.i(this.getClass().toString(), medias[i]); image.setImageUrl(medias[i]); break; // とりあえず1件だけ。 }
これで、URLから自動的に画像を取得してタイムラインに表示される。
今後の予定
とりあえず、1件だけ表示させることに成功したので後は、動的に複数枚の画像が表示できればいいなぁと。Twitterは仕様が変更されている部分があって古い情報もあるから気をつけねば。