我已将ProfilePictureview
设置为我的FB个人资料照片。我想要做的是从ProfilePictureView检索配置文件pic并将其插入Sqlite
数据库。我的代码如下。请一步一步指导我。
Request.executeMeRequestAsync(session,new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
// TODO Auto-generated method stub
if(user!=null)
{
final String t1=user.getId();
final String t2=user.getName();
ProfilePictureView profilePictureView;
profilePictureView = (ProfilePictureView) findViewById(R.id.profilePic);
profilePictureView.setProfileId(user.getId());
int count=db.getme();
if(count==0)
{
map.put("uid",t1.toString());
map.put("name",t2.toString());
db.insertnewuser(map);
}
}
}
});
MyDatabase类:
public void insertnewuser(HashMap<String, String> queryValues4) {
SQLiteDatabase database = this.getWritableDatabase();
ContentValues values4 = new ContentValues();
values4.put("fbuserid", queryValues4.get("name"));
values4.put("fbname", queryValues4.get("uid"));
database.insert("me", null, values4);
database.close();
}
答案 0 :(得分:1)
我不确定我是否真的会帮助你,但这就是我所做的并遇到了一些问题。
有两种方法可以获取个人资料照片:
这一个:
profilePictureView = (ProfilePictureView) view.findViewById(R.id.selection_profile_pic);
ImageView fbImage = ((ImageView) profilePictureView.getChildAt(0));
Bitmap bitmap = ((BitmapDrawable) fbImage.getDrawable()).getBitmap();
这一个:
profilePictureView.setDrawingCacheEnabled(true);
profilePictureView.setProfileId(user.getId());
Bitmap bitmap = profilePictureView.getDrawingCache();
要将位图添加到数据库,我在此处遵循了本教程:
http://sunil-android.blogspot.com.br/2013/10/insert-and-retrieve-image-into-db.html
但是,我得到的个人资料图片实际上是无用户登录图片,如下所示: (http://i.stack.imgur.com/EWlLu.jpg
我猜你必须等到从Facebook上检索图片才能尝试获取它。但是由于我正在使用newMeRequest回调方法,我不知道还能做什么。
毕竟你设法做到了吗?