我正在开发一个小小的个人待办事项列表应用程序,到目前为止,一切都运行良好.我想知道一个小怪癖.每当我去添加一个新项目时,我都会看到一个带有EditText视图的Dialog.当我选择EditText视图时,键盘会按原样输入文本.在大多数应用程序中,默认似乎是为第一个字母保留shift键...虽然它不会为我的视图执行此操作.必须有一个简单的方法来修复,但我已经反复搜索引用,无法找到它.我认为必须有一个由适配器加载的引用的xml属性,但我无法找出它是什么.
NDK下载页面指出,"NDK的典型优秀候选者是独立的,CPU密集型操作,不会分配太多内存,例如信号处理,物理模拟等."
我来自C背景,并很高兴尝试使用NDK来操作我的大部分OpenGL ES函数和任何与物理,顶点动画等相关的本机函数......我发现我依赖于它点击原生代码,想知道我是否犯了一些错误.我在这一点上测试时没有遇到任何麻烦,但我很好奇我将来是否会遇到问题.
例如,我定义了游戏结构(有点像在San-Angeles示例中看到的).我正在动态加载对象的顶点信息(正好是活动游戏区所需要的),因此顶点,法线,纹理坐标,索引和纹理图形数据都会发生相当多的内存分配...只是为了命名要点.我非常小心释放游戏区域之间的分配.
我是否会更安全地设置阵列大小的上限或者我现在应该勇敢地向前冲锋?
哪一个是正确的?
if(dialog != null && dialog.isShowing){}
if(dialog.isShowing && dialog != null){}
if(dialog != null){
if(dialog.isShowing){}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用OpenGL ES 1.1并致力于将Blender的OBJ导出转换为包含顶点数据的二进制文件.我实际上已经有了一个工作工具,但我正在努力改变一些事情,并遇到了一个问题.
即使使用平滑着色,似乎正确的法线(垂直于面平面)也可以实现面部的平面外观.启用平滑着色和正确的法线(仅通过在Blender中标记为锐利的边缘并应用边缘分割修改器),我可以获得平滑部分和锐边的效果.
我要去的地方带来两个问题.
OBJ文件中表示平滑或平面阴影的"s 1"或"s off"线是否完全没有必要从平滑阴影和法线的立场使用?
当在OpenGL中实际设置为平面着色时,是否完全忽略法线(或者假设所有法线都垂直于面)?
我怀疑这可能是因为我运行了一个自定义的ROM ...但我想我至少应该过来问这里.
我正在开发一个使用一些SharedPreferences的应用程序.在这方面的一切工作正常,但在完全卸载然后再次安装后,我发现我的SharedPreferences值仍然被拾取.我最终卸载然后拔出一个adb shell,发现确实......在/ dbdata/databases/mypackagename/shared_prefs /下面还有文件.我认为他们应该被删除......
我正在使用运行Serendipity rom的三星Captivate ......再次,我只能想象它与它有关,但我不确定.
编辑 - 我只是完全擦干净并穿上Firefly Rom并对其进行测试,体验同样的事情.这可能是一个Froyo bug(两者都是2.2 Roms)?
目前,我设置了一个本机函数,我在 Java 端的 onDestroy() 期间调用该函数。我在分配内存的任何本机端指针上调用 free() 。如果我也在这个函数中调用 glDeleteBuffers(),我会在 logcat 中得到一个错误说明
在没有当前上下文的情况下调用 OpenGL ES API(每个线程记录一次)
我认为我可以中断后退按钮按下并更优雅地处理事情,但如果应用程序以另一种方式被杀死,确保我及时释放 gl 资源的最佳方法是什么?
从内存访问的角度来看......是否值得尝试这样的优化?
int boolean_value = 0;
//magical code happens and boolean_value could be 0 or 1
if(boolean_value)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
代替
unsigned char boolean_value = 0;
//magical code happens and boolean_value could be 0 or 1
if(boolean_value)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
无符号字符当然只占用整数4(假设32位平台)的1个字节,但我的理解是处理器从内存中读取整数值会更快.
我正在使用应该是非常简单的代码,但它只是不想工作.操作系统阻止拦截吗?
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU)
{
longOptionPress = true;
openOptionsMenu();
return true;
}
return super.onKeyLongPress(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)