为什么Android应用程序变慢

时间:2016-11-01 15:29:49

标签: java android android-intent

我正在开发一款可以使用意图拍照并将其保存到存储空间的应用。拍摄10到15张照片后,应用程序变得非常慢。拍照代码如下:

    private void capturePhoto() {

            File root = new File(Environment.getExternalStorageDirectory(), "Feedback");
            if (!root.exists()) {
                root.mkdirs();
            }
            File file = new File(root, Constants.PROFILE_IMAGE_NAME + ".jpeg");
            Uri outputFileUri = Uri.fromFile(file);


            Intent photoPickerIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            photoPickerIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
            photoPickerIntent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
            photoPickerIntent.putExtra("return-data", true);
            photoPickerIntent.putExtra("android.intent.extras.CAMERA_FACING", 1);
            startActivityForResult(photoPickerIntent, requestCode);


        }
         @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if (this.requestCode == requestCode && resultCode == RESULT_OK) {


                File file = new File(root, Constants.PROFILE_IMAGE_NAME+".jpeg");
                checkFlowIdisPresent(file);

                   displayPic();


            }
        }
 private void displayPic() {

        String filePath = Environment.getExternalStorageDirectory()
                .getAbsolutePath() + File.separator + "/Feedback/" + Constants.PROFILE_IMAGE_NAME + ".jpeg";
        //  Bitmap bmp = BitmapFactory.decodeFile(filePath);
        //Bitmap scaled = Bitmap.createScaledBitmap(bmp, 300, 300, true);

        File imgFile = new File(filePath);
        Bitmap bmp = decodeFile(imgFile);


        if (imgFile.exists()) {

            dispProfilePic.setImageBitmap(bmp);
        } else {

            dispProfilePic.setBackgroundResource(R.drawable.user_image);

        }
    }

已编辑 DisplayPic()方法如上所示

1 个答案:

答案 0 :(得分:0)

您需要使用图像加载库来加载图像。

Glide是我的最爱。

它的设置非常简单:

将此{n} build.gradle

dependencies {
    compile 'com.github.bumptech.glide:glide:3.7.0'
}

那么你的方法将是

private void displayPic() {
    String filePath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "/Feedback/" + Constants.PROFILE_IMAGE_NAME + ".jpeg";    
    Glide.with(context).load(filePath).override(300, 300).into(dispProfilePic);
}

您可以找到更多信息和使用详情here