package com.werb.gankwithzhihu.ui.activity; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.support.v4.view.ViewCompat; import android.widget.ImageView; import android.widget.Toast; import com.bumptech.glide.Glide; import com.werb.gankwithzhihu.R; import com.werb.gankwithzhihu.ui.base.BasePresenter; import com.werb.gankwithzhihu.ui.base.MVPBaseActivity; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import butterknife.Bind; import butterknife.OnClick; import uk.co.senab.photoview.PhotoViewAttacher; /** * Created by Werb on 2016/8/22. * Werb is Wanbo. * Contact Me : werbhelius@gmail.com * 显示和保存图片 */ public class PictureActivity extends MVPBaseActivity { public static final String IMG_URL = "img_url"; public static final String IMG_DESC = "img_desc"; public static final String TRANSIT_PIC = "picture"; private String img_url; private String img_desc; @Bind(R.id.iv_meizhi_pic) ImageView iv_meizhi_pic; @OnClick(R.id.save_img) void saveImg(){ saveImage(); } @Override protected BasePresenter createPresenter() { return null; } @Override protected int provideContentViewId() { return R.layout.activity_pic; } @Override public boolean canBack() { return true; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); parseIntent(); //设置共享元素 ViewCompat.setTransitionName(iv_meizhi_pic, TRANSIT_PIC); Glide.with(this).load(img_url).centerCrop().into(iv_meizhi_pic); new PhotoViewAttacher(iv_meizhi_pic); } @Override protected void onDestroy() { super.onDestroy(); Glide.clear(iv_meizhi_pic); } public static Intent newIntent(Context context, String url,String desc){ Intent intent = new Intent(context,PictureActivity.class); intent.putExtra(PictureActivity.IMG_URL,url); intent.putExtra(PictureActivity.IMG_DESC,desc); return intent; } private void parseIntent(){ img_url = getIntent().getStringExtra(IMG_URL); img_desc = getIntent().getStringExtra(IMG_DESC); } private void saveImage(){ iv_meizhi_pic.buildDrawingCache(); Bitmap bitmap = iv_meizhi_pic.getDrawingCache(); //将Bitmap 转换成二进制,写入本地 ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG , 100 , stream); byte[] byteArray = stream.toByteArray(); File dir=new File(Environment.getExternalStorageDirectory ().getAbsolutePath()+"/zhigan" ); if(!dir.exists()) { dir.mkdir(); } File file = new File(dir, img_desc.substring(0, 10) + ".png"); try { FileOutputStream fos = new FileOutputStream(file); fos.write(byteArray, 0, byteArray.length); fos.flush(); //用广播通知相册进行更新相册 Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); Uri uri = Uri.fromFile(file); intent.setData(uri); PictureActivity.this.sendBroadcast(intent); Toast.makeText(PictureActivity.this,"保存成功~",Toast.LENGTH_SHORT).show(); } catch (Exception e) { e.printStackTrace(); } } }