imageView图片保存到本地和相册

package com.example.kk.myapplication;

import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.os.Bundle;
import android.content.ClipboardManager;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;


public class focusUsActivity extends Activity {

    private ImageView back;
    private TextView copyWeChatNumber;
    private ImageView two_dimension_code;
    private ClipboardManager cmb;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.focus_us);

    }

    @Override
    protected void onResume() {
        super.onResume();
        init();
    }

    private void init(){
        back=(ImageView)findViewById(R.id.focususBack);
        copyWeChatNumber=(TextView)findViewById(R.id.copyWeChatNumber);
        two_dimension_code=(ImageView)findViewById(R.id.two_dimension_code);
        cmb = (ClipboardManager)this.getSystemService(Context.CLIPBOARD_SERVICE);
        setComponent();
    }

    private void setComponent(){
        back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(focusUsActivity.this,localPhoneActivity.class);
                startActivity(intent);

            }
        });
        if(cmb.getText().toString().equals("ivali-mobi")){
            copyWeChatNumber.setBackgroundColor(Color.parseColor("#ADADAD"));
            copyWeChatNumber.setText("微信号已经复制到剪贴板");
        }else {
            copyWeChatNumber.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    copyWeChatNumber.setBackgroundColor(Color.parseColor("#ADADAD"));
                    copyWeChatNumber.setText("微信号已经复制到剪贴板");
                    cmb.setText("ivali-mobi");
                }
            });
        }

        two_dimension_code.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
               /* saveImage("ivali-icon.JPEG");*/ //保存到本地  /storage/emulated/0/saving_picture
                SaveImageToSysAlbum();  //保存到相册

                return false;
            }
        });


    }

    public static String getSDPath()
    {
        boolean hasSDCard = Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
        if(hasSDCard)
        {
            return Environment.getExternalStorageDirectory().toString()+"/saving_picture";

        }
        else{
            return "/data/data/com.example.kk.myapplication/saving_picture";
        }

    }

    public static Bitmap convertViewToBitmap(View view)
    {
        view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
        view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
        view.buildDrawingCache();
        Bitmap bitmap = view.getDrawingCache();
        return bitmap;
    }

    public void saveImage(String strFileName)
    {
        Bitmap bitmap = convertViewToBitmap(two_dimension_code);
        String strPath = getSDPath();

        try
        {
            File destDir = new File(strPath);
            if (!destDir.exists())
            {
                Log.d("MagicMirror", "Dir not exist create it " + strPath);
                destDir.mkdirs();
                Log.d("MagicMirror", "Make dir success: " + strPath);
            }

            File imageFile = new File(strPath + "/" + strFileName);
            imageFile.createNewFile();
            FileOutputStream fos = new FileOutputStream(imageFile);
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
            fos.flush();
            fos.close();
        }
        catch (FileNotFoundException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }


    private void SaveImageToSysAlbum() {
        if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
            Bitmap bitmap = convertViewToBitmap(two_dimension_code);
            if (bitmap != null) {
                try {
                    ContentResolver cr = getContentResolver();
                    String url = MediaStore.Images.Media.insertImage(cr, bitmap,
                            String.valueOf(System.currentTimeMillis()), "");
                    Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT).show();

                } catch (Exception e) {
                    e.printStackTrace();
                }
            }else {
                Toast.makeText(this, "保存失败", Toast.LENGTH_SHORT).show();
            }
        }else {
            Toast.makeText(this, "没有sdcard,保存失败", Toast.LENGTH_SHORT).show();
        }
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值