0

编辑:-> 嘿,伙计们!<--

我正在开发“基于图像的应用程序”!我想做的是:

  1. 拍照(完成)
  2. 预览带有叠加层的照片!
  3. 裁剪照片

所以问题是覆盖!我有一个 SurfaceView,里面有拍摄的照片,现在我想看到一个像窗口一样的正方形(rect2)和一个 alpha 覆盖(rect1 某种黑色,alpha 50%)。是否可以绘制 2 个矩形,一个为全尺寸(rect1),一个为较小尺寸(rect2),然后从第一个矩形中剪下较小的?

______________
|Rect1       |
|   ______   |
|  |Rect2 |  |
|  |      |  |
|  |______|  |
|____________| 

我使用的是安卓 2.1。我知道在 2.3.3 中有一个 BitmapRegionDecoder!这件事几乎完成了我想做的事情。目前我画了 4 个矩形并在中间留了一个小洞作为窗口,但移动这个正方形并调整它的大小就像我的 A** 很痛苦。

编辑:我想做的就像在 Facebook 中一样,如果您将图片作为 Profileimage 上传,您必须在发布内容时移动图像上的正方形并调整其大小,以获取左侧的“头像”图像...

所以我希望一切都清楚,你可以帮助我!

谢谢

4

2 回答 2

0

您可以使用 FrameLayout,如容器,并用于定位 SurfaceView(您的矩形)。使用 removeView,您可以通过使用 findviewbyid 捕获来删除您想要的矩形。

我希望这对你有帮助。再见

于 2011-08-04T16:24:01.563 回答
0
public class yourActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(new yourCanvas(this));
}

class yourCanvas extends View {
    public Panel(Context context) {
        super(context);
    }

    @Override
    public void onDraw(Canvas canvas) {
        Bitmap yourBitmap = getYourBitmap();
        canvas.drawBitmap(_yourBitmap, 50, 50, null);
        canvas.drawRect(0,0,canvas.getWidth(),50,null); //top rect
        canvas.drawRect(0,0,50,canvas.getHeight(),null); //left rect
        canvas.drawRect(50+yourBitmap.getWidth(),0,canvas.getWidth(),canvas.getHeight(),null); //right rect
        canvas.drawRect(0,50+yourBitmap.getHeight(),canvas.getWidth(),canvas.getHeight(),null); //Bottom rect
    }
}

}


如果您只想为图像视图创建边框,则先前的答案适用

我想提出以下建议:

  1. ImageView的位图设置为您的位图
  2. 将背景颜色设置为您希望外部矩形的颜色
  3. 设置填充参数以获得所需的尺寸
于 2011-08-04T16:24:02.053 回答