图像裁剪活动/小部件

时间:2010-10-22 20:06:48

标签: android

Android中是否有图片裁剪活动?我知道当你将图像保存为壁纸时,它会弹出一个图像裁剪器......我已经查看了源代码,但这取决于很多特定于图库的东西。不太可重复使用。

有谁知道如何做到这一点,或者是否有任何第三方图书馆可以帮助我解决这个问题?

2 个答案:

答案 0 :(得分:3)

有一个相当受到良好支持的Intent(用于我对至少六打不同的Android 2.1+手机的测试,包括SenseUI和Motoblur设备,我相信它已经在Android 1.0或更早版本的G1上出现) 。这可能会让你开始:

    final Intent intent = new Intent("com.android.camera.action.CROP");
    intent.setData(uriOfImageToCrop);
    intent.putExtra("outputX", 400);
    intent.putExtra("outputY", 400);
    intent.putExtra("aspectX", 1);
    intent.putExtra("aspectY", 1);
    intent.putExtra("scale", true);
    intent.putExtra("noFaceDetection", true);
    intent.putExtra("output", Uri.fromFile(someOutputFile));
    startActivityForResult(intent, SOME_RANDOM_REQUEST_CODE);

然后在Activity的onActivityResult()方法中处理你需要做的事情;你的输出文件应该在那时有裁剪的图像。

注意:此代码使用内部API,并且适用于所有设备。但是,为了安全起见,如果某人的设备不支持此Intent,您可能希望有后备行为(autocrop?不要裁剪?)。

答案 1 :(得分:0)

不要忘记一个重要的属性:

intent.putExtra("scaleUpIfNeeded", true);

如果您裁剪的照片小于您想要的照片,这一点至关重要。 如果没有提供,您将在裁剪的图像周围获得黑框