gpt4 book ai didi

android - 从可绘制对象创建一个新的图像文件

转载 作者:行者123 更新时间:2023-11-29 22:26:48 27 4
gpt4 key购买 nike

我有一个问题。我正在从 android 的图库中选择一个图像并在 ImageView 中显示它。我想要做的是创建另一个具有另一个名称的文件,并将此图像复制到我的应用程序资源目录内的此文件中。谁能帮帮我。

最佳答案

您可以使用以下命令启动图库选择器 Intent :

public void imageFromGallery() {
Intent getImageFromGalleryIntent =
new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
startActivityForResult(getImageFromGalleryIntent, SELECT_IMAGE);
}

然后当它返回时,使用以下代码部分获取所选图像的路径:

public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
switch(requestCode) {
case SELECT_IMAGE:
mSelectedImagePath = getPath(data.getData());
break;
}
}

public String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
startManagingCursor(cursor);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}

现在您在字符串中有了路径名,您可以将它复制到另一个位置。

try {
File sd = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();
if (sd.canWrite()) {
String sourceImagePath= "/path/to/source/file.jpg";
String destinationImagePath= "/path/to/destination/file.jpg";
File source= new File(data, souceImagePath);
File destination= new File(sd, destinationImagePath);
if (source.exists()) {
FileChannel src = new FileInputStream(source).getChannel();
FileChannel dst = new FileOutputStream(destination).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
}
} catch (Exception e) {}

我认为这将完成您的工作..

也通过这个link

关于android - 从可绘制对象创建一个新的图像文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5672857/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com