ビットマップを必要とするメソッドで使用できるように、Facebook から返されたプロフィール画像を変換してビットマップに変更しようとしています。以下のコードを使用してプロファイル画像を取得し、それを ProfilePictureView に入れることができます。また、テスト用に他に 2 つのビューを作成しました... CircleImageView と ImageView です。これまでのところ、ProfilePictureView だけが画像を表示しています。これは私が試したコードの例ですが、ビットマップを作成するために Web で見つけたいくつかの方法を試しましたが、どれもうまくいきませんでした。どんな提案/解決策も大歓迎です!
ProfilePictureView profilePictureView;
profilePictureView = (ProfilePictureView) findViewById(R.id.facebookPictureView);
profilePictureView.setProfileId(userId); //this works to get and set the profile pic
standardImageView = (ImageView) findViewById(R.id.imageView);
circleImageView = (CircleImageView) findViewById(R.id.profImage);
AsyncTask<Void, Void, Bitmap> t = new AsyncTask<Void, Void, Bitmap>() {
protected Bitmap doInBackground(Void... p) {
Bitmap bmp = null;
try {
URL aURL = new URL("http://graph.facebook.com/" + userId + "/picture?type=large");
URLConnection conn = aURL.openConnection();
conn.setUseCaches(true);
conn.connect();
InputStream is = conn.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
bmp = BitmapFactory.decodeStream(bis);
bis.close();
is.close();
} catch (IOException e) {
e.printStackTrace();
}
return bmp;
}
protected void onPostExecute(Bitmap bmp) {
standardImageView.setImageBitmap(bmp);
circleImageView.setImageBitmap(bmp);
}
};
t.execute();
デバッガーを使用してステップスルーすると、bmp が null であることがわかりました。他のいくつかの方法を試しましたが、同じことが起こりました。ヘルプ!