2013-02-20 46 views
-1

在我的相機應用程序中,我有圖像按鈕,圖像視圖和兩個按鈕作爲確認和save.On第一次顯示圖像按鈕是可見的,其他人是不可見的,完成編碼如何通過單擊圖像按鈕獲取相機,並在圖像視圖中獲得圖像,並在點擊確認按鈕時保存出現,但是在此保存點擊時,我想將圖像視圖中捕獲的圖像保存在SD上的特定文件中卡與串行命名循環,如在數碼相機中使用「.PNG」擴展名。請幫助我。並提前致謝android在相機應用

回答

0

首先,你必須從捕獲的圖像返回位圖,然後在按鈕上使用此方法單擊我'米使用它壽。

void Save() { 
    if (null != view.getDrawable()) { 
     view.setDrawingCacheEnabled(true); 
     view.buildDrawingCache(); 
     save = view.getDrawingCache(); 
     final File myDir = new File(folder); 
     myDir.mkdirs(); 
     final Random generator = new Random(); 
     int n = 10000; 
     n = generator.nextInt(n); 
     final String fname = "StyleMe-" + n + ".png"; 
      file = new File(myDir, fname); 
     if (file.exists()) 
      file.delete(); 
     try { 
      final FileOutputStream out = new FileOutputStream(file); 
      save.compress(Bitmap.CompressFormat.PNG, 100, out); 
      out.flush(); 
      out.close(); 
      sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, 
        Uri.parse("file://" 
          + Environment.getExternalStorageDirectory()))); 
      Toast.makeText(getApplication(), "Image Saved", 
        Toast.LENGTH_SHORT).show(); 
     } catch (final Exception e) { 
      Toast.makeText(getApplication(), 
        "Something Went Wrong check if you have Enough Memory", 
        Toast.LENGTH_LONG).show(); 
     } 
    } else { 
     final Toast tst = Toast.makeText(getApplication(), 
       "Please Select An Image First", Toast.LENGTH_LONG); 
     tst.setGravity(Gravity.CENTER, 0, 0); 
     tst.show(); 
    } 
    view.setDrawingCacheEnabled(false); 
} 

在這裏,我從查看的現金獲取圖像並將其保存爲PNG你所要做的就是刪除if statement和改變什麼保存到您的位圖的名字 save.compress(Bitmap.CompressFormat.PNG, 100,出);` 和這將是

void Save() { 
     final File myDir = new File(folder); 
     myDir.mkdirs(); 
     final Random generator = new Random(); 
     int n = 10000; 
     n = generator.nextInt(n); 
     final String fname = "StyleMe-" + n + ".png"; 
      file = new File(myDir, fname); 
     if (file.exists()) 
      file.delete(); 
     try { 
      final FileOutputStream out = new FileOutputStream(file); 
      save.compress(Bitmap.CompressFormat.PNG, 100, out); \\ change save to your Bitmap name 
      out.flush(); 
      out.close(); 
      sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, 
        Uri.parse("file://" 
          + Environment.getExternalStorageDirectory()))); 
      Toast.makeText(getApplication(), "Image Saved", 
        Toast.LENGTH_SHORT).show(); 
     } catch (final Exception e) { 
      Toast.makeText(getApplication(), 
        "Something Went Wrong check if you have Enough Memory", 
        Toast.LENGTH_LONG).show(); 
     } 

} 

'
,這裏是我的文件夾弦

String folder = "/sdcard/Pictures/StyleMe"; 

和我的static File file; 和P.S此方法它會自動告訴圖庫掃描新文件,無需重新啓動手機或手動進行。確實接受答案,如果那是你所尋求的並且投票的話。 編輯:在此添加您的清單<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

+0

嘿,我欣賞你的積極幫助,但有一個問題就來了,不知道爲什麼我使用仿真器的代碼,並設置SD卡還,但仍出現了敬酒味精ü已經寫在catch語句 – 2013-02-20 12:25:18

+0

我猜是因爲該方法沒有從模擬器獲取SD卡。嘗試將它安裝在手機上,確保它能正常工作。 PS我在我的應用程序上使用這種方法,它完美的作品,我從來沒有在模擬器上試過它之前,我在我的手機上測試我的所有應用程序:D – k0sh 2013-02-20 13:10:52

+0

郵件你的emailid我會通過電子郵件你我的代碼作爲IAM無法發佈這字數限制 – 2013-02-20 14:21:42