java - 将ImageView保存到sdcard android

标签 java android image imageview

我想保存一个 ImageView,我用 setImageURI 显示在我的 android 设备的 SDcard 中...

我怎样才能做到这一点?

代码:

public class MainActivity extends ActionBarActivity {

ImageView imageView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    imageView = (ImageView) findViewById(R.id.imageView);

    imageView.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent();
            intent.setType("image/*");
            intent.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(Intent.createChooser(intent, "Select Image"), 1);
        }
    });
}

@Override
protected void onActivityResult(int reqCode, int resCode, Intent data) {
    if(resCode == RESULT_OK){
        if(reqCode == 1)
            imageView.setImageURI(data.getData());
    }
}

提前致谢。

最佳答案

使用以下方法将其保存到SdCard:

@Override
protected void onActivityResult(int reqCode, int resCode, Intent data) {
    if(resCode == RESULT_OK){
        if(reqCode == 1)
            imageView.setImageURI(data.getData());
            Bitmap bm=((BitmapDrawable)imageView.getDrawable()).getBitmap();
            saveImageFile(bm);
    }
}

    public String saveImageFile(Bitmap bitmap) {
            FileOutputStream out = null;
            String filename = getFilename();
            try {
                out = new FileOutputStream(filename);
                bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
            return filename;
        }

        private String getFilename() {
            File file = new File(Environment.getExternalStorageDirectory()
                    .getPath(), "TestFolder");
            if (!file.exists()) {
                file.mkdirs();
            }
            String uriSting = (file.getAbsolutePath() + "/"
                    + System.currentTimeMillis() + ".jpg");
            return uriSting;
        }

关于java - 将ImageView保存到sdcard android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31316760/

相关文章:

java - 将 Erlang UTF-8 编码的字符串转换为 java.lang.String

java - 执行 TestNG 测试时捕获 Log4j 输出

java - 依赖注入(inject)框架相对于经典依赖注入(inject)的优势是什么?

java - 在与 Firefox 镜像不同的地址空间中运行小程序

Java将json Rest api响应转换为图像

android - 如果将 Activity 数据保存在静态类中,如何在重新创建 Activity 时处理 Activity 数据

javascript - 为什么 Android WebView 在第二个页面加载时重置 JavaScript 上下文?

android - 在 Jetpack Compose 中选择要省略的文本

image - 是否可以将 CSS3 过滤器应用于图像,然后下载图像?

image - 我如何知道 TIFF 图像是否采用 CCITT T.6(第 4 组)格式?