2011年3月10日木曜日

Twitter4j でプロフィールのイメージを表示

先の投稿、Twitter4jでxAuth認証 で作成した、TwitterWrapperを使用しています。

Activityの中で。

TwitterWrapper twa = new TwitterWrapper();
        // TwitterWrapperに用意してあるmethodで、SharedPreferencesに保存してあるTwitterの
        // oAuth Token と oAuth Token Secretを使って、アカウントをログイン状態にしています。
        twitter = twa.getAuthorizedTwitter(this);
        
        // SharedPreferencesに保存しておいた、設定を取得
        SharedPreferences pref = 
            getSharedPreferences(Values.TWITTER_PREFERENCE_NAME, Activity.MODE_PRIVATE);
        // SharedPreferencesに保存しておいた、ScreenNameを取得
        String screenName = pref.getString(Values.TWITTER_ID_KEY,"NONE");
        
        try {
            // ScreenNameをつかって、Userのデータを取得。
            User user = twitter.showUser(screenName);
            // ScreenNameをつかって、UserのProfile画像のURLを取得。
            URL imageURL = user.getProfileImageURL();
            Bitmap profile = null;
            // これは、適当にViewのLayoutファイルと紐付けしてください。
            ImageView imgv = (ImageView)findViewById(R.id.userIcon);
            try {
                // BitmapFactory.decodeStreamでビットマップを作成。
                profile = BitmapFactory.decodeStream(
                    imageURL.openConnection().getInputStream());
                if ( profile != null ) {
                    // ちゃんと画像が取得できた時だけ、ImageViewにせってい
                    imgv.setImageBitmap(profile);
                }
            } catch (IOException e) {
                // 取れなかったら無視、レイアウトファイルに
                // デフォルト画像のsrcを設定しておくとそれが出ます。
            }
            
        } catch (TwitterException e) {
            e.printStackTrace();
        }