【问题标题】:ImageView is clickable to open Image with full screen after take photo from camera从相机拍照后,ImageView 可单击以全屏打开图像
【发布时间】:2019-11-11 03:02:27
【问题描述】:

目前,我执行相机功能,当我单击相机按钮时,它将拍摄照片并将其显示在 ImageView 中。现在,我想让 ImageView 是可点击的,这意味着,当点击时,它将全屏打开图像。有人知道怎么做吗?

下面是我当前的代码

Java

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

        setTitle("Task Details");

        if (!SharedPrefManager.getInstance(this).isLoggedIn()) {
            finish();
            startActivity(new Intent(this, MainActivity.class));
        }

        TaskClass task = (TaskClass) getIntent().getExtras().getSerializable("task");

        tvTaskName = findViewById(R.id.tvTaskName);
        btnCamera = findViewById(R.id.btnCamera);
        imgAttach = findViewById(R.id.imgAttach);

        tvTaskName.setText(task.getTask_name());
        EnableRuntimePermission();

        btnCamera.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

                startActivityForResult(intent, 7);

            }
        });
    }

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 7 && resultCode == RESULT_OK) {

            Bitmap bitmap = (Bitmap) data.getExtras().get("data");

            imgAttach.setImageBitmap(bitmap);
        }
    }

    public void EnableRuntimePermission(){

        if (ActivityCompat.shouldShowRequestPermissionRationale(TaskUpdate.this,
                Manifest.permission.CAMERA))
        {

            Toast.makeText(TaskUpdate.this,"CAMERA permission allows us to Access CAMERA app", Toast.LENGTH_LONG).show();

        } else {

            ActivityCompat.requestPermissions(TaskUpdate.this,new String[]{
                    Manifest.permission.CAMERA}, RequestPermissionCode);
        }
    }

    @Override
    public void onRequestPermissionsResult(int RC, String per[], int[] PResult) {

        switch (RC) {

            case RequestPermissionCode:

                if (PResult.length > 0 && PResult[0] == PackageManager.PERMISSION_GRANTED) {

                    Toast.makeText(TaskUpdate.this,"Permission Granted, Now your application can access CAMERA.", Toast.LENGTH_LONG).show();

                } else {

                    Toast.makeText(TaskUpdate.this,"Permission Canceled, Now your application cannot access CAMERA.", Toast.LENGTH_LONG).show();

                }
                break;
        }
    }

XML

<ImageView
    android:id="@+id/imgAttach"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:adjustViewBounds="true"
    android:paddingTop="05dp"
    android:paddingBottom="05dp"
    android:background="@drawable/imgborder"/>

【问题讨论】:

标签: android android-camera android-imageview fullscreen


【解决方案1】:

创建另一个活动,如 ViewImage.java,其布局文件中只有一个 ImageView,然后在用户单击图像时打开该活动,并传递位图。为该 ViewImage 活动设置自定义样式,在您的情况下应该是 NoActionBar。在 ViewImage 活动中接收位图并将其设置为您在布局文件中创建的 imageView。

【讨论】:

    猜你喜欢
    • 2014-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多