(01)OpenGL es中只在指定区域渲染view

效果

(01)OpenGL es中只在指定区域渲染view_第1张图片

图1 右侧显示view的内容

主要代码

(1)main_activity.java的内容


import androidx.appcompat.app.AppCompatActivity;
import android.app.ActivityManager;
import android.content.pm.ActivityInfo;
import android.content.pm.ConfigurationInfo;
import android.os.Build;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.LinearLayout;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private boolean supportsEs2;
//    ModelGLSurfaceView glView;

    CubeGLSurfaceView m_view;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        checkSupported();
        if (supportsEs2) {
            // 设置为全屏
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
            // 设置为横屏模式
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
            setContentView(R.layout.activity_main);
            // 初始化GLSurfaceView
            m_view=new CubeGLSurfaceView(this);
            m_view.requestFocus();//获取焦点
            m_view.setFocusableInTouchMode(true);//设置为可触控
            LinearLayout ll=(LinearLayout)this.findViewById(R.id.ShowView);///将view显示在指定的view中,而不是全页面
            ll.addView(m_view);
        } else
        {
            setContentView(R.layout.activity_main);
            Toast.makeText(this, "当前设备不支持OpenGL ES 2.0!", Toast.LENGTH_SHORT).show();
        }
    }

    @Override
    protected void onPause() {
        super.onPause();
        if (m_view != null) {
            m_view.onPause();
        }
    }

    @Override
    protected void onResume() {
        super.onResume();
        if (m_view != null) {
            m_view.onResume();
        }
    }

     private void checkSupported() {
        ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
        ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
        supportsEs2 = configurationInfo.reqGlEsVersion >= 0x2000;

        boolean isEmulator = Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1
                && (Build.FINGERPRINT.startsWith("generic")
                || Build.FINGERPRINT.startsWith("unknown")
                || Build.MODEL.contains("google_sdk")
                || Build.MODEL.contains("Emulator")
                || Build.MODEL.contains("Android SDK built for x86"));

        supportsEs2 = supportsEs2 || isEmulator;
    }
}

(2)布局文件内容




    

        
        
        
        
    

 

你可能感兴趣的:(elasticsearch,大数据,big,data)