Я установил onClickListener
на макет ImageView и попытался отобразить изображение с телефона. Всюду я искал процесс, и большинство из них схожи. Поэтому он должен работать, но изображение не отображается в представлении изображения. Возможно, я не работаю правильно, так как все происходит в фрагменте. В фрагменте моего кода для отображения изображения. Мне нужно предложение преодолеть.Показать изображение в представлении изображения в android
public class UserProfile extends Fragment {
private ImageView profileImg;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_user_profile, container, false);
profileImg = (ImageView) v.findViewById(R.id.imageView_profile);
profileImg.setOnClickListener(chngImgHandler);
return v;
}
OnClickListener chngImgHandler = new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Complete action using"), 1);
}
};
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1 && resultCode == getActivity().RESULT_OK) {
// Bitmap photo = (Bitmap) data.getData().getPath();
Uri selectedImageUri = data.getData();
imagepath = getPath(selectedImageUri);
Bitmap bitmap = BitmapFactory.decodeFile(imagepath);
profileImg.setImageBitmap(bitmap);
}
}
public String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
@SuppressWarnings("deprecation")
Cursor cursor = getActivity().managedQuery(uri, projection, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
Макет профиля пользователя
<LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="@color/profilepicBG"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView_profile"
android:layout_width="120dp"
android:layout_height="100dp"
android:layout_gravity="center"
android:layout_marginTop="25dp"
android:src="@drawable/ic_launcher" />
<Button
android:id="@+id/btnChangePicture"
android:layout_width="100dp"
android:layout_height="40dp"
android:layout_gravity="center"
android:layout_marginTop="15dp"
android:text="You?"
android:textColor="#fff"
android:textSize="12sp" />
</LinearLayout>
Вы внедряете 'onActivityResult' в' FragmentActivity'? – SilentKiller
да, я так думаю, и, пожалуйста, см. Мой код –
ваша родительская активность onActivityResult будет вызвана, поэтому вам нужно поместить код, присутствующий в onActivityResult фрагмента там .... – maaz