我无法创建公开的图像。我试图在公共图片目录中创建它并在那里创建它,我可以从手机中的文件浏览器查看它。但是图片既没有被默认的专辑应用程序选中,也没有通过将手机连接到计算机来看到它。所以我想这张照片仍然是私密的。我需要的是必须将图片复制到计算机上。这是代码段。
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 :(得分:0)
所以问题是MediaScannerConnection已将它们编入索引。只需在创建文件后添加以下代码即可。
MediaScannerConnection.scanFile(getApplicationContext(),
new String[]{f.toString()}, null,null);