如何在android开发中设计出一个四边形(不是矩形,四边均可一定)的照片裁剪框

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在android开发中设计出一个四边形(不是矩形,四边均可一定)的照片裁剪框相关的知识,希望对你有一定的参考价值。

在百度知道上看到这个提问,我现在也想实现类似的功能,请问您解决了吗?

裁剪框android自带这样的功能。
调用方式:
Intent intent = new Intent();
intent.setAction("com.android.camera.action.CROP");

intent.setDataAndType(mUri, "image/*");// mUri是已经选择的图片Uri
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);// 裁剪框比例
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 150);// 输出图片大小
intent.putExtra("outputY", 150);
intent.putExtra("return-data", true);
startActivityForResult(intent, 200);追问

这个只是矩形框吧,我想做到的是类似这种可以自由拉伸成任意形状四边形的裁剪框

追答

这个就得自己写的,复杂!

参考技术A 你说的,应该是自定义控件追答

是自定义控件,想要做到三楼的图那种效果,请问应该怎么做?

如何在python类中设置此默认值

我正在编写一个表示平行四边形的类,属性为sideAB,sideDA和angleA,angleA的默认值为90,sideDA的默认值应该与sideAB相同,我不是确定如何实施。这是我尝试过的

class Quad( object ):

def __init__( self, AB, DA=AB, A=90 ):


    self.sideAB = AB
    self.sideDA = DA
    self.angleA = A

我得到错误:未定义名称'AB',这是有道理的。任何帮助,将不胜感激

B _____ C

A | _____ | D

尝试画边,希望对您有帮助

答案
其他参数只能从函数定义中访问(因此您不能具有默认参数DA=AB)。处理此问题的一种方法是默认为None,然后在函数中对None进行特殊解释。

class Quad: def __init__(self, AB, DA=None, A=90): self.sideAB = AB self.sideDA = AB if DA is None else DA self.angleA = A square = Quad(10) rect = Quad(10,20) rhombus = Quad(10,A=30) parallelogram = Quad(10,20,30)

以上是关于如何在android开发中设计出一个四边形(不是矩形,四边均可一定)的照片裁剪框的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android Studio 中设置支持的设备类型?

从海量文本中统计出前k个频率最高的词语

如何开发一个简单的聊天APP?

android中TextView的Spnnable使用

Android - 如何在代码中设置首选项

在列表视图 Android 应用程序中设置图像的问题