pull/590/head
FongMi 10 months ago
parent af3c37e68d
commit e4b425af81
  1. 44
      app/src/mobile/java/com/fongmi/android/tv/ui/custom/CustomKeyDownLive.java
  2. 44
      app/src/mobile/java/com/fongmi/android/tv/ui/custom/CustomKeyDownVod.java

@ -15,7 +15,7 @@ import com.fongmi.android.tv.App;
import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.Util;
public class CustomKeyDownLive extends GestureDetector.SimpleOnGestureListener {
public class CustomKeyDownLive extends GestureDetector.SimpleOnGestureListener implements ScaleGestureDetector.OnScaleGestureListener {
private static final int DISTANCE = 250;
private static final int VELOCITY = 10;
@ -46,7 +46,7 @@ public class CustomKeyDownLive extends GestureDetector.SimpleOnGestureListener {
private CustomKeyDownLive(Activity activity, View videoView) {
this.manager = (AudioManager) activity.getSystemService(Context.AUDIO_SERVICE);
this.scaleDetector = new ScaleGestureDetector(activity, new ScaleListener());
this.scaleDetector = new ScaleGestureDetector(activity, this);
this.detector = new GestureDetector(activity, this);
this.listener = (Listener) activity;
this.videoView = videoView;
@ -189,29 +189,27 @@ public class CustomKeyDownLive extends GestureDetector.SimpleOnGestureListener {
listener.onVolume((int) (index / maxVolume * 100));
}
private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
@Override
public boolean onScaleBegin(@NonNull ScaleGestureDetector detector) {
if (changeBright || changeVolume || changeSpeed || changeTime || lock) return false;
return changeScale = true;
}
@Override
public boolean onScaleBegin(@NonNull ScaleGestureDetector detector) {
if (changeBright || changeVolume || changeSpeed || changeTime || lock) return changeScale = false;
return changeScale = true;
}
@Override
public void onScaleEnd(@NonNull ScaleGestureDetector detector) {
App.post(() -> changeScale = false, 250);
}
@Override
public void onScaleEnd(@NonNull ScaleGestureDetector detector) {
App.post(() -> changeScale = false, 250);
}
@Override
public boolean onScale(@NonNull ScaleGestureDetector detector) {
if (!changeScale) return false;
scale *= detector.getScaleFactor();
scale = Math.max(1.0f, Math.min(scale, 5.0f));
videoView.setPivotX(detector.getFocusX());
videoView.setPivotY(detector.getFocusY());
videoView.setScaleX(scale);
videoView.setScaleY(scale);
return true;
}
@Override
public boolean onScale(@NonNull ScaleGestureDetector detector) {
if (!changeScale) return false;
scale *= detector.getScaleFactor();
scale = Math.max(1.0f, Math.min(scale, 5.0f));
videoView.setPivotX(detector.getFocusX());
videoView.setPivotY(detector.getFocusY());
videoView.setScaleX(scale);
videoView.setScaleY(scale);
return true;
}
public interface Listener {

@ -15,7 +15,7 @@ import com.fongmi.android.tv.App;
import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.Util;
public class CustomKeyDownVod extends GestureDetector.SimpleOnGestureListener {
public class CustomKeyDownVod extends GestureDetector.SimpleOnGestureListener implements ScaleGestureDetector.OnScaleGestureListener {
private static final int DISTANCE = 250;
private static final int VELOCITY = 10;
@ -46,7 +46,7 @@ public class CustomKeyDownVod extends GestureDetector.SimpleOnGestureListener {
private CustomKeyDownVod(Activity activity, View videoView) {
this.manager = (AudioManager) activity.getSystemService(Context.AUDIO_SERVICE);
this.scaleDetector = new ScaleGestureDetector(activity, new ScaleListener());
this.scaleDetector = new ScaleGestureDetector(activity, this);
this.detector = new GestureDetector(activity, this);
this.listener = (Listener) activity;
this.videoView = videoView;
@ -183,29 +183,27 @@ public class CustomKeyDownVod extends GestureDetector.SimpleOnGestureListener {
listener.onVolume((int) (index / maxVolume * 100));
}
private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
@Override
public boolean onScaleBegin(@NonNull ScaleGestureDetector detector) {
if (changeBright || changeVolume || changeSpeed || changeTime || lock) return false;
return changeScale = true;
}
@Override
public boolean onScaleBegin(@NonNull ScaleGestureDetector detector) {
if (changeBright || changeVolume || changeSpeed || changeTime || lock) return changeScale = false;
return changeScale = true;
}
@Override
public void onScaleEnd(@NonNull ScaleGestureDetector detector) {
App.post(() -> changeScale = false, 250);
}
@Override
public void onScaleEnd(@NonNull ScaleGestureDetector detector) {
App.post(() -> changeScale = false, 250);
}
@Override
public boolean onScale(@NonNull ScaleGestureDetector detector) {
if (!changeScale) return false;
scale *= detector.getScaleFactor();
scale = Math.max(1.0f, Math.min(scale, 5.0f));
videoView.setPivotX(detector.getFocusX());
videoView.setPivotY(detector.getFocusY());
videoView.setScaleX(scale);
videoView.setScaleY(scale);
return true;
}
@Override
public boolean onScale(@NonNull ScaleGestureDetector detector) {
if (!changeScale) return false;
scale *= detector.getScaleFactor();
scale = Math.max(1.0f, Math.min(scale, 5.0f));
videoView.setPivotX(detector.getFocusX());
videoView.setPivotY(detector.getFocusY());
videoView.setScaleX(scale);
videoView.setScaleY(scale);
return true;
}
public interface Listener {

Loading…
Cancel
Save