انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در ذخیره سازی عکس در حافظه تلفن

مشکل در ذخیره سازی عکس در حافظه تلفن

#1
سلام دوستان. من از کد زیر برای ذخیره کردن عکس در حافظه تلفن استفاده میکنم. وقتی رو دکمه کلیک میکنم عکس به درستی تو شبیه ساز ذخیره میشه. اما فقط در شبیه ساز. ولی وقتی برنامه رو تو گوشی های متخلف نصب و تست میکنم نمیدونم چرا کرش میکنه برنامه و میگه برنامه متوقف شده است. بعد که پوشه های تلفن رو چک میکنم میبینم پوشه ای که تو کدنویسی تعریف کردم رو ساخته حتی عکس رو هم ذخیره کرد ولی حجم عکس صفر بایته و عکسی نشون نمیده. در واقع یه عکس خالیه که بازشم نمیکنه. مشکل کجاست دوستان؟ خواهش میکنم کمکم کنید.

کد:
public void saveimg()

    {

        ImageView img = (ImageView) findViewById(R.id.full_image_view);
        
        BitmapDrawable btmpDr = (BitmapDrawable) img.getDrawable();
        Bitmap bmp = btmpDr.getBitmap();
        
        
        //Bitmap bm1 = BitmapFactory.decodeResource(getResources(),R.drawable.image5);
        String extStorageDirectory = Environment.getExternalStorageDirectory().toString ();
        File folder = new File(Environment.getExternalStorageDirectory() + "/AtlasLovePic");
        boolean success = true;
        if (!folder.exists()) {
        success = folder.mkdir();
        }
        if (success) {
        FileOutputStream outStream = null;
        Random r=new Random();
        
        File file = new File(folder,"FolderPic("+r.nextInt(1000)+")"+".JPG");
        
        try {
        outStream = new FileOutputStream(file);
    //------------------ code namayesh ax dar gallery be soorate mostaghim
        sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
                  Uri.parse("file://"+ folder)));
    //------------------    
        } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        }
        bmp.compress(Bitmap.CompressFormat.JPEG, 100, outStream);
        try {
        outStream.flush();
        } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        }
        try {
        outStream.close();
        Toast.makeText(FullImageActivity.this, "عکس مورد نظر با موفقیت در گالری گوشی ذخیره شد", Toast.LENGTH_SHORT).show();
        } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        }}

    }
پاسخ

مشکل در ذخیره سازی عکس در حافظه تلفن

#2
پیغام های مربوط به Logcat رو بزارید تا بررسی بشه
پاسخ
 سپاس شده توسط s.saeid

مشکل در ذخیره سازی عکس در حافظه تلفن

#3
کد:
int randomtedad = 6;
String[] all_characters = {"a","b","c","d","e","f","g","h","i","j","k","l","m",
                          "n","o","p","q","r","s","t","u","v","w","x","y","z",
                          "0","1","2","3","4","5","6","7","8","9"};
int all_characters_length = all_characters.length;

int min = 0;
int max = all_characters_length-1;

randommsg = "";
for(int x = 1; x < randomtedad+1; x = x+1) {
   Random r = new Random();
   int random_number = r.nextInt(max - min + 1) + min;
   String random_character = all_characters[random_number];
   randommsg = randommsg + random_character;
}

        
        
        
        
        
        
         FileOutputStream out = null;
            Bitmap bitmap = ((BitmapDrawable) imageResult.getDrawable()).getBitmap();
            try {
                out = new FileOutputStream(getFilename());
                bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
Toast.makeText(AxSaz.this, "تصویر در پوشه saveimageapp ذخیره شد", 2000).show();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
                Toast.makeText(AxSaz.this, "خطا در ذخیره سازی", 2000).show();
            }
        }

        private String getFilename() {
            File file = new File(Environment.getExternalStorageDirectory()
                    .getPath(), "saveimageapp");
            if (!file.exists()) {
                file.mkdirs();
            }
            String uriSting = (file.getAbsolutePath() + "/"
                    + randommsg + ".jpg");
            return uriSting;
    
    
    
    }

سلام
از این کد ها استفاده کن
اون کد های راندوم مربوط به ساخت نام عکس هستش ک ب صورت راندوم یک اسم 4 حرف میسازه تا عکس جدید جای عکس قبلی نشینه
همه آدما برای رسیدن به جایی که هستند از تجربه دیگران استفاده کردند
پس چرا ما از اندک تجربه ای که داریم برای راهنمایی دیگران استفاده نکنیم؟؟

 
پاسخ
 سپاس شده توسط mehdi_1368

مشکل در ذخیره سازی عکس در حافظه تلفن

#4
(۱۳۹۵/۰۳/۱۴, ۰۶:۳۴ ب.ظ)dost-67 نوشته:
کد:
int randomtedad = 6;
String[] all_characters = {"a","b","c","d","e","f","g","h","i","j","k","l","m",
                          "n","o","p","q","r","s","t","u","v","w","x","y","z",
                          "0","1","2","3","4","5","6","7","8","9"};
int all_characters_length = all_characters.length;

int min = 0;
int max = all_characters_length-1;

randommsg = "";
for(int x = 1; x < randomtedad+1; x = x+1) {
   Random r = new Random();
   int random_number = r.nextInt(max - min + 1) + min;
   String random_character = all_characters[random_number];
   randommsg = randommsg + random_character;
}

        
        
        
        
        
        
         FileOutputStream out = null;
            Bitmap bitmap = ((BitmapDrawable) imageResult.getDrawable()).getBitmap();
            try {
                out = new FileOutputStream(getFilename());
                bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
Toast.makeText(AxSaz.this, "تصویر در پوشه saveimageapp ذخیره شد", 2000).show();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
                Toast.makeText(AxSaz.this, "خطا در ذخیره سازی", 2000).show();
            }
        }

        private String getFilename() {
            File file = new File(Environment.getExternalStorageDirectory()
                    .getPath(), "saveimageapp");
            if (!file.exists()) {
                file.mkdirs();
            }
            String uriSting = (file.getAbsolutePath() + "/"
                    + randommsg + ".jpg");
            return uriSting;
    
    
    
داداش یکم در مورد این کدها راهنما    }

سلام
از این کد ها استفاده کن
اون کد های راندوم مربوط به ساخت نام عکس هستش ک ب صورت راندوم یک اسم 4 حرف میسازه تا عکس جدید جای عکس قبلی نشینه

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

مشکل در ذخیره سازی عکس در حافظه تلفن

#5
همش مربوط به رویداد کلیک هستش شما کد ها رو در یک متد قرار بدید وبرنامه رو ران کنید متوجه میشید
همه آدما برای رسیدن به جایی که هستند از تجربه دیگران استفاده کردند
پس چرا ما از اندک تجربه ای که داریم برای راهنمایی دیگران استفاده نکنیم؟؟

 
پاسخ

مشکل در ذخیره سازی عکس در حافظه تلفن

#6
بجای استفاده از کد
کد پی‌اچ‌پی:
BitmapDrawable btmpDr = (BitmapDrawableimg.getDrawable();
 
       Bitmap bmp btmpDr.getBitmap(); 

میتونید از همون کد زیرین خودتون 
کد پی‌اچ‌پی:
Bitmap bm1 BitmapFactory.decodeResource(getResources(),R.drawable.image5); 

استفاده کنید



اگر مشکلتون برطرف نشده. احتمالا مربوط پیغام خطای out of memory باشه.
پیغم های توی Logcat رو نشون بدید مشخص میشه مشکل از کجاست.
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان