Как нарисовать область изменяемого размера - PullRequest
2 голосов
/ 11 марта 2011

Я хотел бы сделать действие, как установить аватар в контакт приложения Android. Я могу изменить размер области выбора, коснувшись угла (вверху слева и внизу справа). Как я могу это реализовать?

Пожалуйста, дайте мне советы.

Большое спасибо.

Edit: Я хочу это так: Это как эта картинка

Моя проблема в том, что я не знаю, как создать событие: коснитесь, затем перетащите область выбора.

Ответы [ 2 ]

2 голосов
/ 11 марта 2011

Вы можете использовать функцию обрезки, которую вы упомянули.Откроется галерея, где вы можете выбрать изображение и выбрать определенную область.

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

0 голосов
/ 11 марта 2011

Кроме метода onDraw в макете кадра

теперь у вас есть 2 варианта изменения размера frameLayout или изменения размера в методе ondraw

...