如何绘制可调整大小的区域

时间:2011-03-11 10:21:44

标签: android canvas resizable

我想在联系android应用程序中创建类似set avatar的活动。 我可以通过触摸到角落(左上角和右下角)来调整选区的大小。 我该如何实现呢?

请给我建议。

非常感谢。

编辑: 我希望这样: It is like this picture

我的问题是我不知道怎么做事件:触摸,然后拖动选择区域。

2 个答案:

答案 0 :(得分:2)

您可以使用您提到的裁剪功能。它将打开画廊,您可以在其中选择图像并选择某个区域。

Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);
intent.setType("image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 96); 
intent.putExtra("outputY", 96);

try {
    intent.putExtra("return-data", true);
    startActivityForResult(intent, PICK_REQUEST);
}

catch (ActivityNotFoundException e) {
    new AlertDialog.Builder(OptionenActivity.this)
    .setTitle("Error")
    .setMessage("An error occured")
    .setPositiveButton(android.R.string.ok, null).show();
}

通过onActivityResult

获取结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
    super.onActivityResult(requestCode, resultCode, imageReturnedIntent);

    if (resultCode != RESULT_OK)
        return;

    switch (requestCode) {
        case PICK_REQUEST:
            final Bundle extras = imageReturnedIntent.getExtras();

            if (extras != null) {
                Bitmap image = extras.getParcelable("data");                    
                Toast.makeText(this, "Success", Toast.LENGTH_SHORT).show();
            }
            break;
    }
}

修改

你会得到这个:

crop image

答案 1 :(得分:0)

在框架布局中加载onDraw方法

现在您有2个选项可以调整frameLayout的大小或更改ondraw方法的大小