Когда мы пишем этот код, галерея открывается, и изображение выбирается, но не может отображаться в изображении нашего приложения для Android.
Вот мой код MainActivity.java: -
public class Main3Activity extends AppCompatActivity {
public static final int GALLERY_PIC = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
Button buttonupload_pic = findViewById(R.id.buttonupload_pic);
buttonupload_pic.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, GALLERY_PIC);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == GALLERY_PIC && 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 imagepic= findViewById(R.id.imagepic);
imagepic.setImageBitmap(BitmapFactory.decodeFile(picturePath));
}
}
}
вот код xml: -
<ImageView
android:id="@+id/imagepic"
android:layout_width="216dp"
android:layout_height="156dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="81dp"
android:layout_weight="1"></ImageView>
<Button
android:id="@+id/buttonupload_pic"
android:layout_width="wrap_content"
android:layout_height="36dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="247dp"
android:text="Upload Photo"
android:layout_gravity="center"
android:layout_weight="0"/>
и это разрешения, которые я включил: -
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Скажите, пожалуйста, с нуля, поскольку я новичок в Android Studio