2012-02-19 8 views
1

私は立ち往生しています。 LinearLayoutをビットマップに変換して保存し、電子メールで送信しています。私が持っている問題は、前のファイル名を上書きするようにファイル名を設定したいということです。主な目的は、LinearLayoutを画像として電子メールで送信することです。私が読んだことから、まずそれをSDカードに保存しなければなりません。私はそれで大丈夫ですが、私は常に1つの保存されたイメージを持っているだけです。私はランダムな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(新しいファイル("ファイル名 ")); ' –

+0

私はあなたが私の問題を解決したと思うが、ファイルを保存する場所はどこですか?私はSDカードでそれを見つけることができず、今はできません。 –

関連する問題