She*_*Lin 5 android image gallery save imageview
我正在尝试创建一个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();
}
}
});
Run Code Online (Sandbox Code Playgroud)
小智 6
我这样做是为了在图库中保存图像.
private void saveImageToGallery(){
imageview.setDrawingCacheEnabled(true);
Bitmap b = imageview.getDrawingCache();
Images.Media.insertImage(getActivity().getContentResolver(), b,title, description);
}
Run Code Online (Sandbox Code Playgroud)
insertImage()将返回一个String != nullif图像真的已保存.另外:需要清单中的权限为"android.permission.WRITE_EXTERNAL_STORAGE"并注意这会将图像放在图库列表的底部.
希望这可以帮助.
您必须将图像保存到媒体提供商。这是一个简单的例子:
\n\nUri saveMediaEntry(String imagePath,String title,String description,long dateTaken,int orientation,Location loc) {\nContentValues v = new ContentValues();\nv.put(Images.Media.TITLE, title);\nv.put(Images.Media.DISPLAY_NAME, displayName);\nv.put(Images.Media.DESCRIPTION, description);\nv.put(Images.Media.DATE_ADDED, dateTaken);\nv.put(Images.Media.DATE_TAKEN, dateTaken);\nv.put(Images.Media.DATE_MODIFIED, dateTaken) ;\nv.put(Images.Media.MIME_TYPE, \xe2\x80\x9cimage/jpeg\xe2\x80\x9d);\nv.put(Images.Media.ORIENTATION, orientation);\nFile f = new File(imagePath) ;\nFile parent = f.getParentFile() ;\nString path = parent.toString().toLowerCase() ;\nString name = parent.getName().toLowerCase() ;\nv.put(Images.ImageColumns.BUCKET_ID, path.hashCode());\nv.put(Images.ImageColumns.BUCKET_DISPLAY_NAME, name);\nv.put(Images.Media.SIZE,f.length()) ;\nf = null ;\nif( targ_loc != null ) {\nv.put(Images.Media.LATITUDE, loc.getLatitude());\nv.put(Images.Media.LONGITUDE, loc.getLongitude());\n}\nv.put(\xe2\x80\x9c_data\xe2\x80\x9d,imagePath) ;\nContentResolver c = getContentResolver() ;\nreturn c.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, v);\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
24244 次 |
| 最近记录: |