0

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

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

它工作正常,但问题是图像背后的黑暗背景。 裁剪后我的输出图像

4

3 回答 3

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);
于 2013-08-04T13:18:09.283 回答
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); ,但如果我们根据以前的尺寸缩放图像的一小部分,它会降低图像质量。所以我不推荐使用这个。

于 2014-03-05T08:59:40.580 回答
0

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

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

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

于 2013-02-01T16:00:44.447 回答