2014-10-17 4 views
0

Мне удалось загрузить изображение пользователя из галереи устройств в изображение. Тем не менее, я пытаюсь предоставить пользователю возможность загружать изображение своего профиля с их facebook на изображение.Загрузить изображение facebook в imageview

Ниже, как я должен загрузить изображение из устройства галереи в ImageView,

Button buttonLoadImage = (Button) findViewById(R.id.btnPictureSelect); 
    buttonLoadImage.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View arg0) { 
      Intent i = new Intent(
        Intent.ACTION_PICK, 
        android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
      startActivityForResult(i, RESULT_LOAD_IMAGE); 
     } 
    }); 

} 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 

     if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK 
       && null != data) { 
      Uri selectedImage = data.getData(); 
      String[] filePathColumn = { MediaStore.Images.Media.DATA }; 

      Cursor cursor = getContentResolver().query(selectedImage, 
        filePathColumn, null, null, null); 
      cursor.moveToFirst(); 

      int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
      String picturePath = cursor.getString(columnIndex); 
      cursor.close(); 

      ImageView imageView = (ImageView) findViewById(R.id.profilePicturePreview); 
      imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath)); 

     } 

    } 

Я пытаюсь выяснить способы, так что, когда пользователь нажимает кнопку «btnFacebookUpload» они способны выбрал картина из галереи их facebook, который будет приведен к ImageView "profilePicturePreview"

Update:

Button buttonFacebookLoadImage = (Button) findViewById(R.id.btnFacebookUpload); 
    buttonFacebookLoadImage.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View arg0) { 
      ProfilePictureView profilePictureView; 
      profilePictureView = (ProfilePictureView) findViewById(R.id.profilePicturePreview); 

      buttonFacebookLoadImage.setSessionStatusCallback(new Session.StatusCallback() { 

         @SuppressWarnings("deprecation") 
         @Override 
         public void call(Session session, SessionState state, 
           Exception exception) { 
       Log.i(TAG, "Access Token" + session.getAccessToken()); 
           Request.executeMeRequestAsync(session, 
             new Request.GraphUserCallback() { 
              @Override 
              public void onCompleted(GraphUser user, 
                Response response) { 
               if (user != null) { 
       profilePictureView.setProfileId(user.getId()); 

               } 
              } 
             }); 
          } 



    }); 

Проблема: не может относиться к неконечной переменной buttonFacebookLoadImage внутри внутреннего класса, определенный в другом методе

в линии

buttonFacebookLoadImage.setSessionStatusCallback(new Session.StatusCallback() { 

также

не могут относиться к неконечной переменной profilePictureView внутри внутреннего класса определенный в другом методе

в линии

 profilePictureView.setProfileId(user.getId()); 

TAG не может быть решена с переменной

+0

Вы можете использовать facebook graph Api для анализа профиля пользователя pic url. Проверьте [это] (http://stackoverflow.com/questions/6706977/how-to-get-the-facebook-profile-picture-in-my-android-application) могут помочь вам – ashutiwari4

ответ

1

Использование FB Sdk You can download from here Добавьте его в ypur проект в библиотеке

Используя следующий код поможет вам пользователя FB изображение профиля

ProfilePictureView profilePictureView; 
profilePictureView = (ProfilePictureView) findViewById(R.id.imageView); 

authButton.setSessionStatusCallback(new Session.StatusCallback() { 

      @SuppressWarnings("deprecation") 
      @Override 
      public void call(Session session, SessionState state, 
        Exception exception) { 
    Log.i(TAG, "Access Token" + session.getAccessToken()); 
        Request.executeMeRequestAsync(session, 
          new Request.GraphUserCallback() { 
           @Override 
           public void onCompleted(GraphUser user, 
             Response response) { 
            if (user != null) { 
    profilePictureView.setProfileId(user.getId()); 

            } 
           } 
          }); 
       } 

      } 
+0

благодарю вас за ваш оперативный ответ. Я добавил обновление под своим первоначальным сообщением о моих проблемах. – John

+0

Попробуйте объявить свой профильPictureView вне onclick .. есть виджет входа FB, профилированный FB sdk LoginButton authButton = (LoginButton) findViewById (R.id.authButton); – Dhina