如何将 imageView 的内容保存到内部存储

时间:2021-03-03 20:49:15

标签: android kotlin

我希望有人告诉我一种如何将 imageView 的内容保存到内部存储的方法,因为我不太确定该怎么做,而且我在学习时对 kotlin 不太了解

衷心感谢任何帮助

这是我使用的方法:

n

1 个答案:

答案 0 :(得分:0)

我相信您的问题是您使用 getExternalStorageState () 方法在这一行中获取您的目录:

var storeDirectory = Environment.getExternalStorageState().toString();

根据官方文档

<块引用>

返回主共享/外部存储的当前状态 媒体

所以试试这个:

class MainActivity2 : AppCompatActivity() {
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main2)
        val image = findViewById<ImageView>(R.id.image);
        image.setImageResource(R.drawable.common_full_open_on_phone)
        val storeDirectory = this.getExternalFilesDir(Environment.DIRECTORY_DCIM) // DCIM folder 
        Log.d(TAG, "onCreate: $storeDirectory")
        val file = File(storeDirectory, "testimage.jpg")
        val stream: OutputStream = FileOutputStream(file)
        val drawable = image.drawable
        val bitmap = (drawable as BitmapDrawable).bitmap
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream)
        stream.close()
    }
}

如果您添加了正确的权限并授予它应该可以工作并且您会在 DCIM 文件夹中找到图像