我们有一个Android/Blackberry项目,有一个共同的部分.显然,这部分是为了编译Android和Blackberry目标而编写的,因此,不能使用一些较新的Java特性(例如,Integer.valueOf).我想跳过一些专门针对该部分的规则.有没有办法做到这一点?
在我的应用程序中,我从JPEG和PNG文件加载了几个图像.当我将所有这些文件放入assets目录并以这种方式加载时,一切正常:
InputStream stream = getAssets().open(path);
Bitmap bitmap = BitmapFactory.decodeStream(stream, null, null);
stream.close();
return new BitmapDrawable(bitmap);
Run Code Online (Sandbox Code Playgroud)
但是当我尝试从SD卡加载完全相同的图像时,我得到一个OutOfMemory异常!
InputStream stream = new FileInputStream("/mnt/sdcard/mydata/" + path);
Bitmap bitmap = BitmapFactory.decodeStream(stream, null, null);
stream.close();
return new BitmapDrawable(bitmap);
Run Code Online (Sandbox Code Playgroud)
这是我在日志中得到的:
11-05 00:53:31.003: ERROR/dalvikvm-heap(13183): 827200-byte external allocation too large for this process.
11-05 00:53:31.003: ERROR/GraphicsJNI(13183): VM won't let us allocate 827200 bytes
...
11-05 00:53:31.053: ERROR/AndroidRuntime(13183): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
11-05 00:53:31.053: ERROR/AndroidRuntime(13183): at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
...
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
更新:在真实设备上尝试了这两个 - 似乎我无法将超过12MB的位图加载到所谓的"外部存储器"(这不是SD卡).
我在Mercurial中有一个项目,有一组提交者.不幸的是,一些提交者已多次更改名称,例如,首先它是"昵称",然后它变成"名字姓氏",然后是其他东西.
大多数存储库分析工具都希望提交者在项目过程中具有相同的名称,因此理想情况下,我想在主存储库中重命名先前版本的提交者,并让每个人都进行新的克隆.可能吗?
还有其他方法可以解决这个问题吗?
我有一个RelativeLayout填充屏幕,并ImageView使用LayoutParams边距定位在屏幕上.这些ImageView动画以不同的方式动画,在一种情况下,我希望图像从右边"飞入"屏幕.
不幸的是,如果我将leftMarginImageView 设置为大于屏幕的宽度,则它不会出现(或者如果在动画开始时部分可见,则会出现裁剪).
我尝试将宽度和高度设置RelativeLayout为大于屏幕尺寸 - 它可以工作,但只是部分工作:如果图像完全位于屏幕外,则不起作用,如果图像部分可见,则不会裁剪,但是这只适用于右侧和底侧.
所以,我的问题是:如何定位几个ImageViews上和关闭屏幕,这样我可以用它们制作动画Animation?
我有一个Spring ApplicationContext,我在其中声明了Jetty服务器bean并启动它.在Jetty里面我有一个DispatcherServlet和几个控制器.如何使DispatcherServlet及其控制器使用来自声明Jetty的同一ApplicationContext的bean?
事实上,在那个外部上下文中,我有几个类似守护进程的bean及其依赖项.Jetty中的控制器使用相同的依赖关系,所以我想避免在Jetty内外重复它们.
最近我听说有一种观点认为二元搜索可以通过将范围分为phi(黄金比例)而不是2来改进.这对我来说是一个很大的惊喜,因为我从来没有听说过这样的优化.这是真的?如果按2和按照phi分算同样有效,那么这是真的吗?
如果没有,是否有任何一般条件,黄金分割搜索比二分查找更快?
UPD:已编辑删除与不相关的维基百科文章的链接.很抱歉误导.
我正在尝试构建一个联系人管理应用程序.在我的手机上,我有来自Facebook和HTC Facebook等几个账户的联系人.出于某种原因,我无法从以下RawContacts表中检索这些联系人ContactsContract:
managedQuery(ContactsContract.RawContacts.CONTENT_URI, new String[] {
ContactsContract.RawContacts._ID,
ContactsContract.RawContacts.CONTACT_ID,
ContactsContract.RawContacts.ACCOUNT_NAME,
ContactsContract.RawContacts.ACCOUNT_TYPE,
}, ContactsContract.RawContacts.ACCOUNT_TYPE + " = 'com.facebook.auth.login'", null, null)
Run Code Online (Sandbox Code Playgroud)
此查询不返回任何结果.如果我重新使用帐户类型com.htc.socialnetwork.facebook,我仍然没有结果.我的手机上有很多Facebook联系人; 如何检索它们?
有没有办法让LogCat的输出出现在Eclipse的Console视图中?
LogCat视图比Console更不方便,因为很难看到它中的长消息(它们被列边框修剪)并且异常堆栈跟踪中没有可点击的突出显示以快速导航到错误源.
只是为了说清楚 - 我希望有可点击的堆栈跟踪,就像普通的Eclipse控制台中那样,所以我可以快速导航到错误源.
我想知道是否使代码更明确有助于Eclipse更快地分析它.例如,如果我将类声明为final,则代码分析器理论上可以在计算类型层次结构时跳过搜索其后代.
那么,它真的能加快速度吗?