我希望有人告诉我一种如何将 imageView 的内容保存到内部存储的方法,因为我不太确定该怎么做,而且我在学习时对 kotlin 不太了解>
衷心感谢任何帮助
这是我使用的方法:
n
答案 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 文件夹中找到图像