gpt4 book ai didi

java - 将图库中的图像和 Mp3 保存到 Android 内部存储目录

转载 作者:行者123 更新时间:2023-12-02 10:40:25 25 4
gpt4 key购买 nike

所以,我正在做一个大学项目,允许用户从相机/图库中选择图像,然后选择 mp3。我想将这两个选定的文件保存到同名的内部存储目录中(仅扩展名 .mp3/.jpg 有所不同)

我已经设法获取创建文件夹的代码以及从相机/图库获取图像,但我似乎无法弄清楚如何将其保存到内部存储目录或如何在同一目录中获取 mp3方式。

创建文件夹的代码

try{ File folder = new File(Environment.getExternalStorageDirectory() + "/InkousticMedia");
boolean success = true;
if (!folder.exists()) {
success = folder.mkdir();
}


}catch (Exception e){
Log.e("MODEL", "ERROR: " + e.toString());
}

从 MediaStore 获取图像的代码:

    public class SaveTattooActivity extends AppCompatActivity {

public void getPhoto()
{
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent,1);
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);

if(requestCode == 1)
{
if(grantResults.length >0 && grantResults[0] == PackageManager.PERMISSION_GRANTED)
{
getPhoto();
}
}
}

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

if(checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)
{
requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
}else
{
getPhoto();
}



}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

if(requestCode == 1 && requestCode == RESULT_OK && data != null)
{
Uri selectedImage = data.getData();

try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImage);

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


} catch (IOException e) {
e.printStackTrace();
}
}
}
}

我已经查看了堆栈上的其他类似问题,但它们都有很大的不同,并且没有具体的答案,我似乎可以找出可以将 mp3 和图像保存到目录中的方法。

最佳答案

这是我用来保存图像的代码,检查这个github存储库https://github.com/Rawkush/Status-Saver .

                File f1,f2;
f1 = new File(uri.toString());
String fname = f1.getName();
f2 = new File(Environment.getExternalStorageDirectory()+"/YOUR_FOLDER/");
f2.mkdirs();

try {
FileUtils.copyFileToDirectory(f1,f2);
ContentValues values =new ContentValues();
values.put(MediaStore.Images.Media.DATE_TAKEN,System.currentTimeMillis());
values.put(MediaStore.Images.Media.MIME_TYPE,"image/jpeg");
values.put(MediaStore.MediaColumns.DATA,f2.toString()+"/"+fname);
getContext().getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,values);
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(getContext(),e.getMessage(),Toast.LENGTH_LONG).show();
}finally {
Toast.makeText(getContext(),"Saved",Toast.LENGTH_LONG).show();
}

关于java - 将图库中的图像和 Mp3 保存到 Android 内部存储目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52949979/

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