2012-02-19 3 views
1

Я застрял. Я конвертирую LinearLayout в Bitmap, сохраняя его, а затем отправляю по электронной почте. Я имею вопрос: я хочу установить имя файла, чтобы он перезаписывал предыдущее имя файла. Основная цель - отправить по электронной почте LinearLayout в виде изображения. Из того, что я прочитал, вы должны сначала сохранить его на SD-карту. Я в порядке с этим, но я хочу иметь только одно сохраненное изображение во все времена. Я получаю имя файла с тем, что похоже на случайное 13-значное имя файла (1329676773253.jpg) Вот код.Настройка имени файла для сохранения .JPG

void image() { 

    llImage.setDrawingCacheEnabled(true); 
    test2 = Bitmap.createBitmap(llImage.getDrawingCache()); 
    ContentValues values = new ContentValues(); 
    values.put(Images.Media.TITLE, "001"); 
    values.put(Images.Media.DISPLAY_NAME, "ast.jpg"); 
    values.put(Images.Media.DATE_ADDED, System.currentTimeMillis()); 
    values.put(Images.Media.MIME_TYPE, "image/jpeg"); 

    Uri uri2 = getContentResolver().insert(
      Images.Media.EXTERNAL_CONTENT_URI, values); 
    try { 
     OutputStream outStream = getContentResolver() 
       .openOutputStream(uri2); 
     test2.compress(Bitmap.CompressFormat.PNG, 100, outStream); 

     outStream.flush(); 
     outStream.close(); 
     Log.d("done", "done"); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 



    final Intent emailIntent = new Intent(
      android.content.Intent.ACTION_SEND); 
    emailIntent.setType("text/html"); 
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, ""); 
    emailIntent.putExtra(Intent.EXTRA_STREAM, uri2); 
    emailIntent.setType("image/png"); 
    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, 
      Html.fromHtml("" + finalEmail)); 
    startActivity(Intent.createChooser(emailIntent, "Email:")); 

} 
+0

Если вы хотите фиксированное имя, почему бы не просто использовать фиксированное имя? например (/mnt/sdcard/myimage.jpg) – BitBank

ответ

0

Вы могли бы просто записать в файл с FileOutputStream:

FileOutputStream outStream = new FileOutputStream("filename.jpg"); 
+0

Это теоретически позволило бы переписать его, но основная цель - прикрепить изображение к электронной почте. Как я называю это как Ури? –

+0

'Uri uri = Uri.fromFile (новый файл (« filename »));' –

+0

Я думаю, что вы решили мою проблему ... но где это сохранить файл? Прежде чем я смог найти его на SD-карте, и теперь я не могу. –

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