2015-08-21 2 views
2

В моем приложении я хочу поместить изображение в место, где выбрано изображение пользователя. В моем фрагменте у меня есть один вид изображения и одна кнопка, когда я выбираю изображение из галереи, я не могу поместить изображение в изображение.Как разместить изображение изображения профиля в этом месте на Android?

Вот мой код:

Профиль Fragment:

public class ProfileFragment extends Fragment { 
 
    //private static Bitmap Image = null; 
 
    private ImageView imageView; 
 
    private static final int SELECT_PHOTO = 1; 
 

 
    Button browseProfilePic; 
 
    @Override 
 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
 
          Bundle savedInstanceState) { 
 
     View view = inflater.inflate(R.layout.fragment_layout_profilepic, container, false); 
 
     imageView = (ImageView)view.findViewById(R.id.profile_image); 
 
     browseProfilePic = (Button) view.findViewById(R.id.btn_pick); 
 
     browseProfilePic.setOnClickListener(new View.OnClickListener() { 
 
      @Override 
 
      public void onClick(View v) {     
 
       Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); 
 
       photoPickerIntent.setType("image/*"); 
 
       startActivityForResult(photoPickerIntent, SELECT_PHOTO); 
 
      } 
 
     }); 
 
     return view; 
 
    } 
 
    @Override 
 
    public void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { 
 
     super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 
 
     switch(requestCode) { 
 
      case SELECT_PHOTO: 
 
       if(resultCode == getActivity().RESULT_OK){ 
 
        try { 
 
         final Uri imageUri = imageReturnedIntent.getData(); 
 
         final InputStream imageStream = getActivity().getContentResolver().openInputStream(imageUri); 
 
         final Bitmap selectedImage = BitmapFactory.decodeStream(imageStream); 
 
         imageView.setImageBitmap(selectedImage); 
 
        } catch (FileNotFoundException e) { 
 
         e.printStackTrace(); 
 
        } 
 
       } 
 
     } 
 
    } 
 
}

Моя активность:

public class AccountActivity extends FragmentActivity { 
 
    protected void onCreate(Bundle savedInstanceState) { 
 
     super.onCreate(savedInstanceState); 
 
     setContentView(R.layout.account); 
 
     String item = getIntent().getStringExtra("item"); 
 
     Fragment fragment = null; 
 
     switch(item) { 
 
      case "Balance": fragment = new BalanceFragment(); break; 
 
      case "Personal": fragment = new PersonalFragment(); break; 
 
      case "Work": fragment = new WorkFragment(); break; 
 
      case "Address": fragment = new AddAddressFragment(); break; 
 
      case "Vehicle": fragment = new AddVehicleFragment(); break; 
 
      case "Preference": fragment = new PreferenceFragment(); break; 
 
      case "About": fragment = new AboutFragment(); break; 
 
      case "Settings": fragment = new SettingsFragment(); break; 
 
      case "Help": fragment = new HelpFragment(); break; 
 
      case "Profile":fragment = new ProfileFragment(); break; 
 
      case "Logout":logout();break; 
 
      default: fragment = new DefaultFragment(); break; 
 
     } 
 

 
     if (savedInstanceState == null) { 
 
      FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
 
//   AccountFragment fragment = new AccountFragment(); 
 
      transaction.replace(R.id.account_frame, fragment); 
 
      transaction.commit(); 
 
     } 
 
     setTitle(item); 
 
    } 
 
    @Override 
 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
 
     super.onActivityResult(requestCode,resultCode,data); 
 
    }

Пожалуйста, помогите мне.

+0

Можете ли вы быть более конкретными о том, что идет не так? Любые исключения или что? – endasan

ответ

0

В деятельности, на котором находится ваш фрагмент, не забудьте добавить эти строки:

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

Проверить эту должность для получения дополнительной информации Android onActivityResult not called from fragment

+0

Да, у меня есть эта строка .. но как позвонить из этого фрагмента – Razul

+0

У вас есть метод 'onActivityResult()', переопределенный как в фрагменте, так и в действии? Можете ли вы опубликовать свой код активности? – endasan

+0

См. Мой код редактирования – Razul

Смежные вопросы