in src/main/java/com/amazonaws/kinesisvideo/demoapp/activity/WebRtcActivity.java [818:869]
private void resizeLocalView() {
DisplayMetrics displayMetrics = new DisplayMetrics();
final ViewGroup.LayoutParams lp = localView.getLayoutParams();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
lp.height = (int) (displayMetrics.heightPixels * 0.25);
lp.width = (int) (displayMetrics.widthPixels * 0.25);
localView.setLayoutParams(lp);
localView.setOnTouchListener(new View.OnTouchListener() {
private final int mMarginRight = displayMetrics.widthPixels;
private final int mMarginBottom = displayMetrics.heightPixels;
private int deltaOfDownXAndMargin, deltaOfDownYAndMargin;
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
final int X = (int) motionEvent.getRawX();
final int Y = (int) motionEvent.getRawY();
switch (motionEvent.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
FrameLayout.LayoutParams lParams = (FrameLayout.LayoutParams) lp;
deltaOfDownXAndMargin = X + lParams.rightMargin;
deltaOfDownYAndMargin = Y + lParams.bottomMargin;
return true;
case MotionEvent.ACTION_MOVE:
FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) lp;
layoutParams.rightMargin = deltaOfDownXAndMargin - X;
layoutParams.bottomMargin = deltaOfDownYAndMargin - Y;
// shouldn't be out of screen
if (layoutParams.rightMargin >= mMarginRight - lp.width) {
layoutParams.rightMargin = mMarginRight - lp.width;
}
if (layoutParams.bottomMargin >= mMarginBottom - lp.height) {
layoutParams.bottomMargin = mMarginBottom - lp.height;
}
if (layoutParams.rightMargin <= 0) {
layoutParams.rightMargin = 0;
}
if (layoutParams.bottomMargin <= 0) {
layoutParams.bottomMargin = 0;
}
localView.setLayoutParams(layoutParams);
}
return false;
}
});
}