2014-01-25 5 views
1

Привет, я думаю, это довольно простое решение, но я не могу понять это сам. позволяет сказать, что у нас есть 4 балла (start_X, start_Y, end_X, end_Y), и мы должны показать пользователю этот выбор.Выделите часть изображения View

Пока я думал, что лучшим решением было иметь 3 imageviews:

  1. Original (ничего не изменилось);
  2. Mask (только любой полупрозрачный цвет)
  3. Порция (вырезанные из части исходного изображения)

и показать их как folows: 3> 2> 1

Это решение было бы здорово но я не могу закончить его. Застрял в том, что вы нажимаете часть изображения и вставляете его в «место», которое оно принадлежит в соответствии с оригинальным изображением;

Вопросы - Есть ли другие решения для этой проблемы? if not then - Как обрезать часть изображения, используя эти 4 точки, а затем поместить это изображение в очень точное место, которое оно принадлежит?

Udate 1 Создать новую растровое изображение с прозрачным фоном (.png) и, возможно, такой же размер, как исходное изображение. Затем добавьте отрезанную часть к ней в специальном положении и используйте ее как изображение 3 (описано выше); Правильно ли это решение? если да, как это сделать? Desired effect

+0

как вы хотите, чтобы показать летящего выбор? изображение пожалуйста ... – pskink

+0

обновлено с изображением нужного эффекта – TGIO

ответ

3

попробовать это:

class BD extends BitmapDrawable { 
    private Rect mSelection; 

    public BD(Resources res, Bitmap bitmap) { 
     super(res, bitmap); 
     mSelection = new Rect(20, 20, 60, 60); 
    } 

    @Override 
    public void draw(Canvas canvas) { 
     super.draw(canvas); 
     Log.d(TAG, "draw " + canvas.getMatrix()); 
     canvas.clipRect(mSelection, Op.DIFFERENCE); 
     canvas.drawColor(0x66000000); 
    } 
} 

тестовый код (поместите его в OnCreate):

ImageView iv = new ImageView(this); 
Resources res = getResources(); 
Bitmap b = BitmapFactory.decodeResource(res, R.drawable.layer0); 
Drawable d = new BD(res, b); 
iv.setImageDrawable(d); 
setContentView(iv); 
+0

R.drawable.layer0 - это файл маски справа? – TGIO

+0

вот изображение нарисовать – pskink

+0

Отлично работает, что сэкономило мое время, огромное вам спасибо! – TGIO

Смежные вопросы