代码不存储图库中的布局图像

时间:2016-12-13 12:51:17

标签: android android-gallery

我正在研究将图像从资源存储到图库的应用程序。使用下面的代码,它不会给出错误但不起作用。帮助我解决这个问题。

RelativeLayout fulllayout;
File root = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), "/ZXMCO Images");
 fulllayout = (RelativeLayout) findViewById(R.id.layout);

public void save()
{
    fulllayout.setDrawingCacheEnabled(true);
    fulllayout.buildDrawingCache();
    Bitmap localBitmap = fulllayout.getDrawingCache();
    saveToInternalStorage(localBitmap);
}

private void saveToInternalStorage(Bitmap bitmapImage){

        File pictureFile = getOutputMediaFile();

        try {
            FileOutputStream fos = new FileOutputStream(pictureFile);
            bitmapImage.compress(Bitmap.CompressFormat.PNG, 90, fos);
            fos.close();
        } catch (FileNotFoundException e) {
            Log.d(TAG,"File not found: " + e.getMessage());
        } catch (IOException e) {
            Log.d(TAG, "Error accessing file: " + e.getMessage());
        }

     }
private File getOutputMediaFile() {

    if (! root.exists()){
        root.mkdirs();
        }


    String timeStamp = new SimpleDateFormat("ddMMyyyy_HHmm").format(new Date());
    File mediaFile;
    String mImageName="MI_"+ timeStamp +".jpg";
    mediaFile = new File(root.getPath() + File.separator + mImageName);
    return mediaFile;
}

它什么都没有显示。运行没有错误但无法在图库中找到图像。

1 个答案:

答案 0 :(得分:0)

我认为这里的问题是画廊不知道新图像存储在设备上所以我们需要通知它

有两种方法可以做到这一点

Pre-Kitkat

使用Boradcast

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));

<强>奇巧

您可以使用MediaScannerConnection扫描新文件

 MediaScannerConnection.scanFile(context, new String[]{imageURL}, null,implment Listener Here);