Android開發(fā)實現(xiàn)的保存圖片到相冊功能示例
本文實例講述了Android開發(fā)實現(xiàn)的保存圖片到相冊功能。分享給大家供大家參考,具體如下:
廢話不多說,先上效果:

點擊圖片 調(diào)用savephoto的SaveBitmapFromView(View view);方法自動保存圖片
//點擊圖片保存
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String[] PERMISSIONS = {
"android.permission.READ_EXTERNAL_STORAGE",
"android.permission.WRITE_EXTERNAL_STORAGE" };
//檢測是否有寫的權(quán)限
int permission = ContextCompat.checkSelfPermission(MainActivity.this,
"android.permission.WRITE_EXTERNAL_STORAGE");
if (permission != PackageManager.PERMISSION_GRANTED) {
// 沒有寫的權(quán)限,去申請寫的權(quán)限,會彈出對話框
ActivityCompat.requestPermissions(MainActivity.this, PERMISSIONS,1);
}
try {
//創(chuàng)建savephoto類保存圖片
SavePhoto savePhoto = new SavePhoto(MainActivity.this);
savePhoto.SaveBitmapFromView(imageView);
} catch (ParseException e) {
e.printStackTrace();
}
}
});
SavePhoto類具體實現(xiàn)
參考自:http://m.fzitv.net/article/158635.htm
但原博主部分代碼有誤 我稍加了修改
public class SavePhoto{
//存調(diào)用該類的活動
Context context;
public SavePhoto(Context context) {
this.context = context;
}
//保存文件的方法:
public void SaveBitmapFromView(View view) throws ParseException {
int w = view.getWidth();
int h = view.getHeight();
Bitmap bmp = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(bmp);
view.layout(0, 0, w, h);
view.draw(c);
// 縮小圖片
Matrix matrix = new Matrix();
matrix.postScale(0.5f,0.5f); //長和寬放大縮小的比例
bmp = Bitmap.createBitmap(bmp,0,0,bmp.getWidth(),bmp.getHeight(),matrix,true);
DateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
saveBitmap(bmp,bmp.toString() + ".JPEG");
}
/*
* 保存文件,文件名為當前日期
*/
public void saveBitmap(Bitmap bitmap, String bitName){
String fileName ;
File file ;
if(Build.BRAND .equals("Xiaomi") ){ // 小米手機
fileName = Environment.getExternalStorageDirectory().getPath()+"/DCIM/Camera/"+bitName ;
}else{ // Meizu 、Oppo
Log.v("qwe","002");
fileName = Environment.getExternalStorageDirectory().getPath()+"/DCIM/"+bitName ;
}
file = new File(fileName);
if(file.exists()){
file.delete();
}
FileOutputStream out;
try{
out = new FileOutputStream(file);
// 格式為 JPEG,照相機拍出的圖片為JPEG格式的,PNG格式的不能顯示在相冊中
if(bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out))
{
out.flush();
out.close();
// 插入圖庫
MediaStore.Images.Media.insertImage(context.getContentResolver(), file.getAbsolutePath(), bitName, null);
}
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
// 發(fā)送廣播,通知刷新圖庫的顯示
context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + fileName)));
}
}
布局于其他部分(GridView選擇圖片等)代碼:
http://m.fzitv.net/article/158666.htm
**另附:**從相冊中選擇圖片的方法
//m.fzitv.net/article/158640.htm
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android圖形與圖像處理技巧總結(jié)》、《Android開發(fā)入門與進階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設計有所幫助。
相關(guān)文章
Android自定義View展示W(wǎng)ifi信號強弱指示方法示例
這篇文章主要給大家介紹了關(guān)于Android自定義View展示W(wǎng)ifi信號強弱指示的相關(guān)資料,文中通過示例代碼介紹的非常詳細,文末給出了完整的實例供大家參考學習,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。2017-08-08
Android開發(fā)之AlertDialog實現(xiàn)彈出對話框
這篇文章主要為大家詳細介紹了Android開發(fā)之AlertDialog實現(xiàn)彈出對話框,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-09-09

