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

انتخاب عکس با فرمت gif از گالری(حل شده)

parsarezaei  9 سال پیش  9 سال پیش
0 0

سلام دوستان - چه جوری میتونم یک عکس با فرمت gif رو از گالری انتخاب کنم؟

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

با صدا زدن متد selectFile کاربر می تونه از گالری یا فایل منیجر فایلی رو انتخاب کنه و وقتی که فایل انتخاب شد به متد onActivityResult میره:

    private static final int GIF_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 GIF"), GIF_SELECT_CODE);
        }
        catch (Exception e) {
            // فایل منیجر یا گالری نصب نیست
        }
    }


    public static String getSelectedFilePath(Uri uri) throws Exception {
        if ("content".equalsIgnoreCase(uri.getScheme())) {
            try {
                Cursor cursor = G.context.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 GIF_SELECT_CODE:
                if (resultCode == RESULT_OK) {
                    try {
                        Uri uri = data.getData();
                        String path = getSelectedFilePath(uri);
                        
                        if (getFileExtension(path).equals("gif") || getFileExtension(path).equals("GIF")) {
                            // اگه فایلی که از گالری یا فایل منیجر انتخاب شده gif باشه این خط از کد اجرا میشه
                        } else {
                            // اگه gif نباشه این خط اجرا میشه
                        }
                    }
                    catch (Exception e) {}
                    break;
                }
                super.onActivityResult(requestCode, resultCode, data);
        }
    }
    
    public String getFileExtension(String path) {
        char[] spell = path.toCharArray();
        for (int i = path.length() - 1; i >= 0; i--) {
            String thisLetter = "" + spell[i];
            if (thisLetter.equals(".")) {
                return path.substring(i + 1, path.length());
            }
        }
        return null;
    }
0 0
سلام مرسی ممنون فقط چرا برای گوشی های سامسونگ شرط گذاشتین؟ (9 سال پیش)
0 0
من کد رو تست کردم اما توی شبیه ساز جنی موشن درست کار میکنه اما توی گوشی نوت ۵ کار نمیکنه ! (9 سال پیش)
0 0
چون که توی سامسونگ نحوه ی باز کردن گالری و فایل منیجر فرق می کنه و با اون یکی کد نمیشه این کارو کرد. گوشی نوت 5 فک کنم ورژن اندرویدش 6 هست. توی ورژن اندروید 6 به بعد باید پرمیشن ها رو به صورت ران تایم بگیرید و فقط تعریفشون توی منیفست کافی نیست: لینک (9 سال پیش)
0 0
مرسی خیلی ممنون درست شد . ممنون (9 سال پیش)

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