/** * $id$ * Copyright 2011-2012 Renren Inc. All rights reserved. */ package com.renren.api.connect.android.view; import android.content.Context; import android.os.Handler; import android.util.AttributeSet; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.TextView; import com.renren.api.connect.android.AsyncRenren; import com.renren.api.connect.android.Renren; import com.renren.api.connect.android.common.AbstractRequestListener; import com.renren.api.connect.android.exception.RenrenError; import com.renren.api.connect.android.users.UserInfo; import com.renren.api.connect.android.users.UsersGetInfoRequestParam; import com.renren.api.connect.android.users.UsersGetInfoResponseBean; /** * * @author hecao (he.cao@renren-inc.com) * * 用于显示用户姓名的view * */ public class ProfileNameView extends TextView { /** * fade in 动画的持续时间 */ private static final int ANIM_DURATION = 800; public ProfileNameView(Context context) { super(context); init(); } public ProfileNameView(Context context, AttributeSet attrs) { super(context, attrs); init(); } public ProfileNameView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(); } private Handler handler; private void init () { handler = new Handler(); } /** * 设置当前用户的uid,此空间会获取用户的姓名并显示 * @param uid 当前用户的uid * @param renren renren对象 */ public void setUid(final long uid, final Renren renren) { if (renren == null) { return; } AsyncRenren asyncRenren = new AsyncRenren(renren); UsersGetInfoRequestParam param = new UsersGetInfoRequestParam(new String[]{String.valueOf(uid)}); param.setFields(UserInfo.KEY_NAME); AbstractRequestListener<UsersGetInfoResponseBean> listener = new AbstractRequestListener<UsersGetInfoResponseBean>() { @Override public void onComplete(final UsersGetInfoResponseBean bean) { handler.post(new Runnable() { @Override public void run() { if (bean != null && bean.getUsersInfo().size() > 0) { UserInfo info = bean.getUsersInfo().get(0); String name = info.getName(); if (name != null) { Animation animation = AnimationUtils.loadAnimation(ProfileNameView.this.getContext(), android.R.anim.fade_in); animation.setDuration(ANIM_DURATION); setText(name); startAnimation(animation); } } } }); } @Override public void onRenrenError(RenrenError renrenError) { } @Override public void onFault(Throwable fault) { } }; asyncRenren.getUsersInfo(param, listener); } }