如何将图片放入应用程序的内部存储器?

时间:2016-05-18 07:16:31

标签: android memory android-camera uri internal

我正在尝试从相机应用中拍摄照片并将其保存到应用程序的文件中,直到现在才引导我了解内容Uris的内容。(我不知道它们是什么或如何使用它们)。我已经能够将照片保存在外部存储器中,所以如果有办法将照片从那里移动到apk文件中,那就太好了。

我希望将照片放入的路径是" appname / app / src / main / assets / photos"

这是我现在的代码:

    final String sentence = "My Name is ____";

    myTextView.setText(sentence);

    myEditText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

        }

        @Override
        public void afterTextChanged(Editable s) {

            myTextView.setText(sentence.replace("____",s.toString()));
        }
    });

5 个答案:

答案 0 :(得分:2)

好的apk文件意味着它包含所有类文件,资源文件(图像,视频等),验证证书文件等等。根据您的资产文件夹,它将仅视为资源文件在编程中处理的方式不同。一旦在运行环境中生成apk文件,它就会获得转换后的dex文件。您无法修改文件的内容。

正如我上面所说,在这条道路上拯救是不可能的。 appname/app/src/main/assets/photos

但是你可以让你成为app内存,你可以创建文件并使用你想要的时间。

答案 1 :(得分:2)

您的apk文件类似于Android应用安装文件。它是一个压缩文件,您也可以使用7-Zip或类似程序打开它。在设备上安装应用程序时,文件将被解压缩到内部存储器中。

URI代表统一资源标识符。它会识别您的资源,在您的情况下是拍摄的照片。

您可以将图片保存到内部或外部存储器中。如果要使用外部存储器,则需要权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

如果您将文件保存到内部存储器,则其他应用程序无法访问该文件,您无法使用af file explorer找到它。如果它是外部的,您将在文件资源管理器中找到它。

在Stackoverflow上查看有关如何保存相机文件的答案:

Stackoverflow Camera Intent

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); // create a file to save the image
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name

// start the image capture Intent
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
     

然后,在onActivityResult中,将 data.getData()替换为    fileUri.toString(),它将解决您的问题。

答案 2 :(得分:1)

你生成apk后你无法改变资产价值你只能把你的照片存储到data \ data \ yourpackagename \ photos中,但这会增加你在设备中的应用程序大小

答案 3 :(得分:1)

apk文件包含:

资产,META-IFN,res foulder。

AndroidManifest.xml,classes.dex和resources.arsc

在设备上部署后,apk会生成一个文件夹,通常位于/data/data/your.package.name/。

我建议您将文件保存在专用区域。

答案 4 :(得分:1)

无法保存您从相机应用中拍摄的照片,因为这些照片是在运行时创建的,而源文件夹中的文件(“appname / app / src / main / assets / photos”)必须是在编译时添加(甚至在编译时之前)。