2014-12-06 72 views
0

我無法創建公開的圖像。我試圖在公共圖片目錄中創建它,並在那裏創建,我可以從我的文件瀏覽器在手機中查看它。但圖片既不是默認的專輯應用程序,也不能通過將手機連接到計算機來查看。所以我想這張照片仍然是私人的。我需要的是圖片必須複製到計算機上。這是代碼片段。如何使應用程序創建的文件可以從計算機讀取?

  String photoPath = "sdcard/test.jpg"; 
      Bitmap originalBitmap = BitmapFactory.decodeFile(photoPath); 
      squareBitmap = Bitmap.createBitmap(originalBitmap,0,0,1000,1000); 
      dvBitmap = squareBitmap.createScaledBitmap(squareBitmap,200,200,false); 

      //saving bitmap to JPEG in sd card 
      ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
      dvBitmap.compress(Bitmap.CompressFormat.JPEG,100,bytes); 
      File path = Environment.getExternalStoragePublicDirectory(
        Environment.DIRECTORY_PICTURES); 

      File f = new File(path,"output.jpg"); 
      f.setReadable(true); 
      try { 
       Log.v(LOG_TAG,"CREATING FILE"); 
       f.createNewFile(); 

       FileOutputStream fo = new FileOutputStream(f); 
       fo.write(bytes.toByteArray()); 
       fo.close(); 
       Log.v(LOG_TAG,"FILE CREATED"); 
      } catch (IOException e) { 
       Log.v(LOG_TAG,"CANNOT CREATE FILE"); 
       e.printStackTrace(); 
      } 

在此先感謝

編輯:我測試的手機是索尼的Xperia S.現在我在另一部手機是三星和相同的代碼工作很好的測試。兩者都在內部存儲上進行測試。

回答

0

所以問題是MediaScannerConnection已經索引它們。在文件創建之後添加下面的代碼就可以實現。

MediaScannerConnection.scanFile(getApplicationContext(), 
         new String[]{f.toString()}, null,null); 
相關問題