2014-03-01 200 views
0

我正在使用Twitter4J图书馆。 我想在一个圆圈中显示用户图片配置文件。 我是新来的使用位图和新来从服务器获取的东西。Android - Manipulate Twitter个人资料图片

现在,搜索周围,我用这种方式:

private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> { 
    ImageView bmImage; 

    public DownloadImageTask(ImageView bmImage) { 
     this.bmImage = bmImage; 
    } 

    protected Bitmap doInBackground(String... urls) { 
     String urldisplay = urls[0]; 

     try { 
      SharedPreferences mSharedPreferences = getActivity().getSharedPreferences("MyPref",0); 

      ConfigurationBuilder builder = new ConfigurationBuilder(); 
      builder.setOAuthConsumerKey(TWITTER_CONSUMER_KEY); 
      builder.setOAuthConsumerSecret(TWITTER_CONSUMER_SECRET); 

      // Access Token 
      String access_token = mSharedPreferences.getString(
        PREF_KEY_OAUTH_TOKEN, ""); 
      // Access Token Secret 
      String access_token_secret = mSharedPreferences.getString(
        PREF_KEY_OAUTH_SECRET, ""); 

      AccessToken accessToken = new AccessToken(access_token, 
        access_token_secret); 
      Twitter twitter = new TwitterFactory(builder.build()) 
        .getInstance(accessToken); 

      User user = twitter.showUser(accessToken.getUserId()); 
      urldisplay = user.getProfileImageURL(); 




     } catch (TwitterException e) { 
      // Error in updating status 
      Log.d("Twitter Update Error", e.getMessage()); 
     } 




     Bitmap mIcon11 = null; 
     try { 
      InputStream in = new java.net.URL(urldisplay).openStream(); 
      mIcon11 = BitmapFactory.decodeStream(in); 
     } catch (Exception e) { 
      Log.e("Error", e.getMessage()); 
      e.printStackTrace(); 
     } 

     final int width = mIcon11.getWidth(); 
     final int height = mIcon11.getHeight(); 
     final Bitmap outputBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); 

     final Path path = new Path(); 
     path.addCircle(
       (float)(width/2) 
       , (float)(height/2) 
       , (float) Math.min(width, (height/2)) 
       , Path.Direction.CCW); 

     final Canvas canvas = new Canvas(outputBitmap); 
     canvas.clipPath(path); 
     canvas.drawBitmap(mIcon11, 0, 0, null); 

     return outputBitmap; 
    } 

    protected void onPostExecute(Bitmap result) { 
     bmImage.setImageBitmap(result); 
    } 
} 

但在这样的图片被载入每次我重新打开应用程序时..

我想调整的位图和给它一个边框等,但我会在后面搜索如何做到这一点。 我认为会更好,如果当用户登录到Twitter我下载一次他的个人资料图片,然后我每次都重复使用它是需要的。 这可能吗?什么是更好的方式来做我想要的?谢谢。

回答

相关问题