我有一个800×480 res的设备.当我创建GLSurfaceView时,我得到一个onSurfaceChanged调用533×320(显然应用了1.5 HDPI修改器)并且表面被放大了.所以当我绘制1像素粗线看起来真的很糟糕,我不能有像素完美的渲染.
我想要的是原始分辨率表面(800×480).
在Activity的onCreate中以这种方式创建视图(如在NDK OpenGL示例中):
this.requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); view = new MyGLSurfaceView(this); setContentView(view);
我不使用任何布局等.
解决方法
我找到了解决方案:当我添加时
<uses-sdk android:targetSdkVersion="8" android:minSdkVersion="8"/>
对于AndroidManifest.xml,我得到了适当的解决方案.说实话,Android是几年后使用iOS的非常奇怪的平台…
解决方案在此处找到:MonoDroid apps don’t use correct density drawables