在Android中裁剪图像黑色背景问题

时间:2013-01-29 13:50:04

标签: android android-camera

我正在开发一个应用程序,我必须从相机和图库中获取图像,但是当我尝试裁剪图像时,我会在图像中获得一些深色背景。我正在使用此代码进行裁剪图像 -

intent.putExtra("crop", "true");
intent.putExtra("aspectX", 0);
intent.putExtra("aspectY", 0);
intent.putExtra("outputX", 200);
intent.putExtra("outputY", 150);

它工作正常,但问题是图像背后的黑暗背景。 my output image after crop

3 个答案:

答案 0 :(得分:2)

// aspectX aspectY
intent.putExtra("aspectX", 2);
intent.putExtra("aspectY", 3);
//        outputX,outputY
intent.putExtra("outputX", 800);
intent.putExtra("outputY", 1200);
intent.putExtra("scale", true);
intent.putExtra("scaleUpIfNeeded", true);

答案 1 :(得分:1)

我像这样制作了ImageView,它解决了我的问题: -

   <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="5" >

    <ImageView
        android:id="@+id/selectedpic"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal|center_vertical"
        android:layout_marginTop="30dp"
        android:scaleType="centerCrop"
        android:paddingLeft="5dp"
        android:paddingRight="5dp"
        android:background="@android:color/transparent"
        android:src="@drawable/frame_d" />
</LinearLayout>

重要标签是
android:background="@android:color/transparent"andandroid:scaleType="centerCrop"

我试过intent.putExtra("scale", true); 但是如果我们根据以前的尺寸缩放图像的一小部分,会降低图像质量。所以我不建议使用它。

答案 2 :(得分:0)

这里的问题似乎是图像的新尺寸大于来源,当你裁剪时,Android需要用某种东西“填充”新尺寸。

您可以有一些逻辑来查看在裁剪之前是否需要裁剪图像。

或者,您可以查看ImageCache Actions库。