java - Android - 在处理图像时,将其存储或在临时内存中使用更好吗?

标签 java android bitmap

我正在尝试构建一个用相机拍照并将其发送回主要 Activity 以在 ImageVew 中显示的应用程序。看到一个教程,拍完照片就把照片存到SD卡里。我能够保存文件,但在获取存储图像的位置时遇到困难。

我认为将图像存储在 SD 卡中的工作量太大,因为该图像并不那么重要。

有没有办法将我刚用相机拍摄的图像“保存”到位图元素中?如果是这样,它比存储在 SD 卡中更有效吗?


这是我的 MainActivity.java:

public class MainActivity extends AppCompatActivity {
private Uri imgLocation;
ImageView mImageView;

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

    Button capture = (Button) findViewById(R.id.am_btn_camera);
    capture.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

            imgLocation = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "fname_" +
                    String.valueOf(System.currentTimeMillis()) + ".jpg"));

            intent.putExtra(MediaStore.EXTRA_OUTPUT, imgLocation);
            startActivityForResult(intent, 1);
        }
    });
}

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

    if (requestCode == 1 && resultCode == RESULT_OK) {

        Log.e("URI",imgLocation.toString());
        mImageView.setImageBitmap(BitmapFactory.decodeFile(imgLocation.toString()));
    }
}}

最佳答案

最好只保存在外部/内部存储上,然后再访问它。最好使用第三方库来处理所有图像渲染及其延迟加载,例如:

这些库中的大多数将专注于处理来自 HTTP URL 的资源,但它们仍可用于从本地文件或内容提供程序加载信息。

使用位图处理图像可能会很容易导致 OutOfMemoryError,如 this link 所示。 .不过,在这种情况下,由于您仅使用 1 个位图,因此无需担心太多。

关于java - Android - 在处理图像时,将其存储或在临时内存中使用更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36393050/

相关文章:

java - 从 mysql 数据库中获取值以在 JSP (JAVA) 中显示

java - Java泛型类中void foo(T y)和<T> void foo(T y)的区别

android - 如何将外部Java类复制到build.gradle中的生成源中?

c++ - 在Linux上,如何将文本绘制到位图?

java - 如何为 Java 程序设置进程名称?

java - Spring应用程序上下文重新加载不会更新由DelegatingFilterProxy注册的bean

android - 如何在 Android 布局 XML 文件中向 TabLayout 添加选项卡?

android - 如何解析结果[JSONArray]?

java - Android:共享位图未保存到 SD

java - 在一些 TextView 参数中动态设置文本后创建布局的位图