2012-05-23 2 views
0

Я работаю над сохранением кода изображения ... У него есть макет кадра и наложенное изображение .. он отлично работает, но он сохраняет в корневой папке, я хочу сохранить его в sdcard/my_photos, вот мой код:Изменить путь сохранения изображения

FrameLayout mainLayout = (FrameLayout) findViewById(R.id.frame); 
Random fCount = new Random(); 
int roll = fCount.nextInt(600) + 1;      
File file = new File(Environment.getExternalStorageDirectory() 
    + File.separator + "/ghost" + String.valueOf(roll) +".png"); 

Bitmap b = Bitmap.createBitmap(mainLayout.getWidth(), 
    mainLayout.getHeight(), Bitmap.Config.ARGB_8888); 
Canvas c = new Canvas(b); 
mainLayout.draw(c); 
FileOutputStream fos = null; 
try { 
    fos = new FileOutputStream(file); 

    if (fos != null) { 
    b.compress(Bitmap.CompressFormat.PNG, 90, fos); 
    fos.close(); 
    } 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

помогите мне пожалуйста.

ответ

0

Попробуйте следующее,

bool IsDirCreated=false; 
File f = new File(Environment.getExternalStorageDirectory()+ File.separator+ "ghost"); 
if(!f.isDirectory()) 
{ 
    IsDirCreated=f.mkdirs(); 
} 
else 
{ 
    IsDirCreated=true; 
} 
if(IsDirCreated==true) 
{ 
     FrameLayout mainLayout = (FrameLayout) findViewById(R.id.frame); 
     Random fCount = new Random(); 
     int roll = fCount.nextInt(600) + 1;      
     File file = new File(Environment.getExternalStorageDirectory() 
    + File.separator + "/ghost/" + String.valueOf(roll) +".png"); 

     Bitmap b = Bitmap.createBitmap(mainLayout.getWidth(), 
     mainLayout.getHeight(), Bitmap.Config.ARGB_8888); 
     Canvas c = new Canvas(b); 
     mainLayout.draw(c); 
     FileOutputStream fos = null; 
     try 
     { 
      fos = new FileOutputStream(file); 
      if (fos != null) { 
      b.compress(Bitmap.CompressFormat.PNG, 90, fos); 
      fos.close(); 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 
} 
+0

Спасибо ... он работает как магия ... – Numair

0

Файл file = new Файл (Environment.getExternalStorageDirectory() + File.separator + "/ ghost" + String.valueOf (roll) + ".png"); проблема здесь. Убедитесь, что вы отправляете в «новый файл (..)» - это путь, по которому вы хотите сохранить свою фотографию.

+0

я пытался ** "/ DCIM/Подписи /" **, но он не работает – Numair

Смежные вопросы