في هذا الدرس التعليمي، سأوضح لك كيف يمكنك الوصول إلى معرض الصور المثبت في جهازك، و عرض أي صورة منه في تطبيقك.
أحيانًا يكون من المهم جدًا عرض الصور في التطبيقات وإظهارها، مثل الدردشة، وتطبيقات الشبكات الاجتماعية، بحيت تحتاج تحميل صورة في التطبيق لمشاركتها مع الأصدقاء أو مع أعضاء ٱخرين في نفس التطبيق.

  • الخطوة الأولى:  سنقوم بتعيين الإذن في (androidmanifest.xml) للحصول على سعة تخزين، اضف الكود التالي.
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
  • الخطوة الثانية: سنقوم بتعيين صورة و زر بسيط في (activity_main.xml) انقل الشفرة أدناه.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="exceptionbound.come.howtogetpickfromgallery.MainActivity">
 
 
    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true" />
 
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="116dp"
        android:layout_marginStart="116dp"
        android:onClick="btnClick"
        android:text="Pick image from Gallery" />
</RelativeLayout>
  • الخطوة الثالتة: أولاً ، انتقل إلى (build.raddle) وقم بتغيير (minSdkVersion) إلى 16 ، والآن سنقوم بإكمال الخطوة الأخيرة لدينا هنا (MainActivity.java) سنقوم بإضافة كل الوظائف لتحقيق التطبيق. انسخ الشيفرة أدناه.
package yourname.come.howtogetpickfromgallery;
 
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
 
public class MainActivity extends AppCompatActivity {
    private static final int SELECTED_PIC = 1;
    ImageView imageView;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
 
        imageView = (ImageView) findViewById(R.id.imageView);
    }
 
    public void btnClick(View v) {
        Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        startActivityForResult(intent, SELECTED_PIC);
    }
 
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
 
        super.onActivityResult(requestCode, resultCode, data);
 
        switch (requestCode) {
            case SELECTED_PIC:
                if (resultCode == RESULT_OK) {
                    Uri uri = data.getData();
                    String[] projection = {MediaStore.Images.Media.DATA};
 
                    Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
                    cursor.moveToFirst();
 
                    int columnIndex = cursor.getColumnIndex(projection[0]);
                    String filepath = cursor.getString(columnIndex);
                    cursor.close();
 
                    Bitmap bitmap = BitmapFactory.decodeFile(filepath);
                    Drawable drawable = new BitmapDrawable(bitmap);
                    imageView.setBackground(drawable);
                }
                break;
            default:
                break;
        }
    }
}

الان تحقق من التطبيق. ارجو ان تكون قد استفدت من هذا الكود بحيت يمكنك من إدماجه في تط