【问题标题】:Camera API - Image too small相机 API - 图像太小
【发布时间】:2014-01-19 01:58:00
【问题描述】:

我正在尝试使用相机 API 拍摄照片以填充到图像视图中。现在的问题是从相机拍摄的图像太小而无法填充图像视图。

这是我用来瞄准相机并将图像填充到图像视图中的代码。

btn_takeImage = (Button) findViewById(R.id.btn_takeImage);
        btn_takeImage.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                Intent camera_intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                startActivityForResult(camera_intent, CAMERA_PIC_REQUEST);
            }
        });
@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode)
        {
            case 0:
                if (resultCode == RESULT_OK)
                {
                    Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
                    img_backgroundImage.setImageBitmap(thumbnail);
                }
        }
    }

这是我的xml

<ImageView
            android:id="@+id/img_additionalImage"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:contentDescription="@null"
            android:src="@drawable/ic_launcher" />

我的相机意图有什么问题还是我的 xml 有问题?

【问题讨论】:

    标签: android android-camera android-imageview android-camera-intent


    【解决方案1】:

    这是因为意图数据总是返回捕获图像的缩略图而不是实际图像。

    要获得实际图像,您必须执行以下一些棘手的操作。

    查看答案here

    【讨论】:

    • 我试了一下,确实奏效了。但是,即使我以纵向拍摄照片,它也只允许我拍摄照片并将图像推送到横向。拍了几次照片测试也出现outofmemoryerror异常。
    • 这是安卓漏洞。对于方向,如果检索到的位图大于宽度,则必须检查高度,然后将图像旋转 270 度,否则保持原样。
    • 当您使用 ACTION_IMAGE_CAPTURE Intent 时,图像可能会很大,并且在解码为位图时会导致内存不足。您可以使用 BitmapFactory 来减少内存需求,但最终如果您自己控制相机可能会更好。
    猜你喜欢
    • 2016-08-08
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-30
    • 1970-01-01
    相关资源
    最近更新 更多