我正试图创建一个onclick事件,通过单击按钮将imageview保存到电话图库中,下面是我的代码。它不会存进画廊,有人能帮我弄清楚原因吗?

    sharebtn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View b) {
            // TODO Auto-generated method stub
            //attempt to save the image

            b = findViewById(R.id.imageView);
            b.setDrawingCacheEnabled(true);
                Bitmap bitmap = b.getDrawingCache();
                //File file = new File("/DCIM/Camera/image.jpg");
                File root = Environment.getExternalStorageDirectory();
                File cachePath = new File(root.getAbsolutePath() + "/DCIM/Camera/image.jpg");
                try
                {
                    cachePath.createNewFile();
                    FileOutputStream ostream = new FileOutputStream(cachePath);
                    bitmap.compress(CompressFormat.JPEG, 100, ostream);
                    ostream.close();
                }
                catch (Exception e)
                {
                    e.printStackTrace();
                }

        }
    });

最佳答案

我这样做是为了保存图片库中的图像。

private void saveImageToGallery(){
    imageview.setDrawingCacheEnabled(true);
    Bitmap b = imageview.getDrawingCache();
    Images.Media.insertImage(getActivity().getContentResolver(), b,title, description);
}

insertImage()将返回一个String != null如果图像已经被真正保存。
另外:需要清单中的“android.permission.write_external_storage”权限
请注意,这会将图像放在库中已存在的图像列表的底部。
希望这有帮助。

08-18 01:15
查看更多