В моем приложении у меня есть возможность выбрать изображение из галереи. Я хочу разместить изображение в режиме просмотра изображений ... мой код отлично работает (поместите изображение на изображение) для самой высокой версии (API 21), но не работает (поместите изображение на изображение) для самой низкой версии (Api 15). Пожалуйста, помогите мне!Как попасть onActivityResult из самой низкой версии
Мое приложение конфигурации:
minSdkVersion 14
targetSdkVersion 22
versionCode 1
versionName "1.0"
Мой код здесь:
public class ProfileFragment extends Fragment {
//private static Bitmap Image = null;
private ImageView imageView;
private static final int SELECT_PHOTO = 1;
private String selectedImagePath = null;
private Uri mSelectedImageUri;
Button browseProfilePic;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
setHasOptionsMenu(true);//For option menu
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 intent = new Intent();
// Show only images, no videos or anything else
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
// Always show the chooser (if there are multiple options available)
startActivityForResult(Intent.createChooser(intent, "Select Picture"), SELECT_PHOTO);
}
});
return view;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == MenuActivity.RESULT_OK) {
if (requestCode == SELECT_PHOTO) {
mSelectedImageUri = data.getData();
selectedImagePath = getPath(mSelectedImageUri);
System.out.println("Image Path : " + selectedImagePath);
imageView.setImageURI(mSelectedImageUri);
}
}
}
public String getPath(Uri uri)
{
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = getActivity().getContentResolver().query(uri, projection, null, null, null);
if (cursor == null) return null;
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String s=cursor.getString(column_index);
cursor.close();
return s;
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
// Save the image bitmap into outState
Bitmap bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap();
outState.putParcelable("bitmap", bitmap);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// Read the bitmap from the savedInstanceState and set it to the ImageView
if (savedInstanceState != null){
Bitmap bitmap = (Bitmap) savedInstanceState.getParcelable("bitmap");
imageView.setImageBitmap(bitmap);
}
}
@Override
public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
// Inflate the menu; this adds items to the action bar if it is present.
inflater.inflate(R.menu.menu_profile_pic, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()){
case R.id.action_done:
Toast.makeText(getActivity().getApplicationContext(), "Saved", Toast.LENGTH_LONG).show();
}
return super.onOptionsItemSelected(item);
}
}
MenuActivity.java:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode,resultCode,data);
ProfileFragment pm = new ProfileFragment();
pm.onActivityResult(requestCode,resultCode,data);
}
Как исправить ..
Спасибо за заранее.
Можете ли вы объяснить, что именно не работает? – Opiatefuchs
Изображение не установлено в режиме просмотра изображения – Razul