简体   繁体   中英

How to place profile picture image on that place in Android?

In my app, I want to put an image on the place where a user image is selected. In my fragment, I have one image view and one button, when I select an image from the gallery I cannot place the image on the Image View.

Here is my code:

Profile 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(); } } } } } 

My activity:

 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); } 

Please anyone help me.

In the Activity, that hosts your fragment, be sure to add those lines:

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

Check this post for more info Android onActivityResult not called from fragment

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM