آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

باز کردن گالری

محمد  8 سال پیش  8 سال پیش
0 0

من میخوام تو پروژم  گالریم رو باز کنم  و یه عکس انتخاب کنم تا تعغیراتمو روش انجام بدم . کسی میدونه باید چه کار کنم؟

 

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Amir  8 سال پیش
+1 0

با کدهای زیر لیست فایل منیجر و گالری و... برای کاربر باز میشه که از هر کدوم که خواست می تونه عکس رو بگیره. گرفتن فایل توی گوشی Samsung با بقیه فرق می کنه و من توی کد زیر چک کردم اگه Samsung بود به یه روش دیگه عکس رو بگیره. هر جا که خواستید عکس رو بگیرید متد selectFile() رو صدا بزنید:

     private static final int AVATAR_SELECT_CODE = 20;


    private void selectFile() {
        Intent intent = null;
        if (Build.BRAND.equals("samsung") || Build.BRAND.equals("Samsung")) {
            intent = new Intent("com.sec.android.app.myfiles.PICK_DATA");
            intent.putExtra("CONTENT_TYPE", "image/*");
            intent.addCategory(Intent.CATEGORY_DEFAULT);
        } else {
            intent = new Intent(Intent.ACTION_GET_CONTENT);
            intent.setType("image/*");
            intent.addCategory(Intent.CATEGORY_OPENABLE);
        }

        try {
            startActivityForResult(Intent.createChooser(intent, "Select Image", AVATAR_SELECT_CODE);
        }
        catch (Exception e) {
            Toast.makeText(getApplicationContext(), "Please install a File Manager", Toast.LENGTH_SHORT);
        }
    }


    private String getSelectedFilePath(Uri uri) throws Exception {
        if ("content".equalsIgnoreCase(uri.getScheme())) {
            try {
                Cursor cursor = getApplicationContext().getContentResolver().query(uri, new String[]{ "_data" }, null, null, null);
                int column_index = cursor.getColumnIndexOrThrow("_data");
                if (cursor.moveToFirst()) {
                    return cursor.getString(column_index);
                }
            }
            catch (Exception e) {}
        }
        else if ("file".equalsIgnoreCase(uri.getScheme())) {
            return uri.getPath();
        }

        return null;
    }


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {
            case AVATAR_SELECT_CODE:
                if (resultCode == RESULT_OK) {
                    try {
                        Uri uri = data.getData();
                        String path = getSelectedFilePath(uri); // این مسیر فایلی هست که کاربر انتخاب کرده
                    }
                    catch (Exception e) {}
                    break;
                }
                super.onActivityResult(requestCode, resultCode, data);
        }
    }

اگه می خواید تغییرشم بدید پرمیشن زیر رو به منیفست اضافه کنید:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .