• 大小: 19KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: Java
  • 标签: surfaceView  手势  

资源简介

android手势缩放 surfaceview,肯定不会运行起来,手势的基本算法在里面,当时毕业公司让做的一个小功能。

资源截图

代码片段和文件信息


public class MainActivity extends Activity implements OnTouchListener
onclickListener OnGestureListener
SurfaceHolder.Callback OnDoubleTapListener {
/**************************************** 手势相关参数可删除测试 ******************************************************/
private SurfaceHolder glSurfaceHolder = null;
private SurfaceHolder surfaceHolder = null;
/** 视频参数 **/
private frameLayout.LayoutParams lp = null;
private int lastX lastY;
private int cenX cenY;
private PointF mid = new PointF();// 两指中点
static final int NONE = 0;
static final int DRAG = 1; // 拖动中
static final int ZOOM = 2; // 缩放中
int mode = NONE; // 当前的事件
private float scale = 1.0f;
private static final float MAX_SCALE = 8.0f;
private static final float MIN_SCALE = 1.0f;
private float beforeLenght; // 两触点距离
private float afterLenght; // 两触点距离
private static final float sfRation = 0.05f;
private int moveX moveY;
private boolean statusScroll = false;// 执行scroll状态
/*********************************************************************************************************/

/**************************************** 手势相关参数可删除测试 ******************************************************/

private RelativeLayout parent_layout;// UI顶级容器
private frameLayout frame;
private RelativeLayout gesture_volume_layout;// 手势调节音量容器
private RelativeLayout gesture_bright_layout;// 手势调节亮度容器
private static final String TAG = “CBB_MediaPlayer“;
private int num = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
screenLock = new ScreenLock(true this);
glSurfaceView = (GLSurfaceView) findViewById(R.id.glSurfaceView);
surfaceView = (SurfaceView) findViewById(R.id.surfaceView);
surfaceView.setZOrderOnTop(true);// 显示层次
surfaceView.setZOrderMediaOverlay(true);// 显示层次

// glSurfaceView.setZOrderOnTop(true);
// glSurfaceView.setZOrderMediaOverlay(true);
// glSurfaceView.bringToFront();
// SurfaceHolder surfaceHolder = surfaceView.getHolder();
// surfaceHolder.setFormat(PixelFormat.TRANSPARENT);
// surfaceHolder.addCallback(this);



surfaceView.dispatchWindowVisibilityChanged(View.VISIBLE);



}


/**
 * 初始化UI控件
 * 
 * */
private void initComponent() {
lp = (frameLayout.LayoutParams) surfaceView.getLayoutParams();
surfaceView.setLayoutParams(lp);

glSurfaceHolder = glSurfaceView.getHolder();
glSurfaceHolder.addCallback(this);
glSurfaceView.setKeepScreenOn(true);

surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
surfaceView.setKeepScreenOn(true);
// 将Window设置为可以超出屏幕尺寸
mWindow = getWindow();
mWindow.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

DisplayMetrics display = new DisplayMetrics();
display = this.getResources().getDisplayMetrics();
screenWidth = display.widthPixel

评论

共有 条评论