- FrameLayout (отмечен красным)
- Source ImageView (черный)
- Объект (изображение) с OnTouchListener (оранжевый)
Через Объект с помощью OnTouchListener, я хочу показать часть растрового изображения, которые заполняются на изображении (исходное изображение).
Так что это не проблема, я делаю вот так: Bitmap bt = Bitmap.createBitmap(sourceBitmap,event.getX(),event.getY(),250,250);
, где:
- SourceBitmap - это изображение, которое добавляется в исходный ImageView
- event.getX()/ event.getY() - это координата, где я начинаю рисовать часть растрового изображения
- 250, 250 - размер растрового изображения части (часть).
и результат:
Таким образом, проблемы возникают, когда мой объект (с touchlistener), идущий на границу (я сделал эту возможность для оранжевого объекта, чтобы перейти вне границы с Object.width()/2).
Итак, в этом случае:
как я могу достичь этого результата:
где результат части будет:
- Часть растрового изображения
- Вторая часть - цвет фона рамки.
Что я пробовал в данный момент:
public boolean onTouch(View view, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
//i want to draw bigger portion then corrds
int CurrentX = (int)view.getX() - (view.getWidth());
int CurrentY = (int)view.getY() - (view.getHeight());
//case,when object is going out of border
if(CurrentX <= 0)
{
Paint paint = new Paint();
paint.setStyle( Style.FILL );
paint.setColor( Color.RED );
mBitmap = Bitmap.CreateBitmap(sourceBitmap,(int)view.getX() + Math.abs(CurrentX),(int)view.getY(),250,250);
Canvas canvas = new Canvas(mBitmap);
canvas.drawBitmap(mBitmap,new Rect((int)view.getX()+Math.abs(CurrentX), (int)view.getY(),250-Math.abs(CurrentX),250),new RectF(Math.abs(CurrentX), 0, 250,250),paint);
}
break;
}
return true;
}
}
Любые предложения? Спасибо!