我正在尝试从相机应用中拍摄照片并将其保存到应用程序的文件中,直到现在才引导我了解内容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()));
}
});
答案 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上查看有关如何保存相机文件的答案:
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”)必须是在编译时添加(甚至在编译时之前)。