Tag: java

回收ImageView的位图

我有这样的东西: Bitmap.Config conf = Bitmap.Config.ARGB_8888; WeakReference<Bitmap> bm = new WeakReference<Bitmap>(Bitmap.createBitmap(3000 + 3000, 2000, conf)); Canvas canvas = new Canvas(bm.get()); canvas.drawBitmap(firstBitmap, 0, 0, null); canvas.drawBitmap(bm, firstBitmap.getWidth(), 0, null); imageView.setImageBitmap(bm); 而且我将这个应用于10多个逐一创build的imageView。 每当我创build新的ImageView,我想从第一个回收'bm'对象,导致这个代码在那里,导致我的堆越来越多,然后抛出OutOfMemoryError ,所以我做: bm.recycle() 在将Bitmap(bm)设置为imageView对象之后。 这会导致ImageView的canvas想要绘制循环位图的exception。 什么是回收已经被放在ImageView上的图像的位图的方式? Thanksb

在Xamarin Studio中的Java Lang UnsupportedClassVersion错误

我在构build项目时遇到以下错误。 我该如何纠正? C:\ Program Files(x86)\ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets(3,3):错误:java.lang.UnsupportedClassVersionError:com / android / dx / command / Main:不支持major.minor版本52.0(FGH) 我的帮助>关于>显示详细信息的版本信息: Xamarin.Android版本:6.0.2.1(简化版) Android SDK:C:\ Users \ Admin \ AppData \ Local \ Android \ android-sdk 支持的Android版本: 4.0.3(API等级15) 4.4(API级别19) 6.0(API等级23) SDK工具版本:24.4.1 SDK平台工具版本:23.0.1 SDK构build工具版本:24 rc2 Java SDK:C:\ Program Files(x86)\ Java \ jdk1.7.0_71 java版本“1.7.0_71” Java(TM)SE运行时环境(build 1.7.0_71-b14)Java HotSpot(TM)客户端VM(构build24.71-b01,混合模式,共享)

为什么可以修改最终对象?

我在我正在处理的代码库中遇到以下代码: public final class ConfigurationService { private static final ConfigurationService INSTANCE = new ConfigurationService(); private List providers; private ConfigurationService() { providers = new ArrayList(); } public static void addProvider(ConfigurationProvider provider) { INSTANCE.providers.add(provider); } … INSTANCE被声明为final。 为什么可以将对象添加到INSTANCE中? 不应该使最终的使用无效。 (它不)。 我假设答案必须做指针和内存的东西,但想知道肯定。

在Windows下同时运行多个Java版本

我们有几个在Java 5上运行的应用程序,现在想要引入一个基于Java 6的应用程序。两个java版本可以在Windows下一起使用吗? 是否有任何控制面板为不同的应用程序设置适当的Java版本,或者有其他方式来设置,将使用哪个版本的Java来运行特定的应用程序?

我应该如何将文件加载到我的Java应用程序中?

我应该如何将文件加载到我的Java应用程序中?

Map的keySet()和entrySet()的性能注意事项

所有, 任何人都可以让我知道究竟是2之间的性能问题? 该站点: CodeRanch提供了使用keySet()和get()时需要的内部调用的简要概述。 但是,如果任何人都可以在使用keySet()和get()方法时提供关于stream程的确切细节,那将是非常好的。 这将帮助我更好地了解性能问题。

Android:微调提示

有没有提供一个微调的提示类似于编辑文本字段提供的提示。 我知道你可以使用一个提示给你一个标题栏,但仍然留下初始微调框字段为空,直到你点击微调。 我现在有一个粗糙的方式来设置一个虚拟字段作为问题的微调数组的第一部分,然后在最后检查,以确保微调不等于问题string。 有没有更清洁/更好的方法呢? 谢谢!

在Java中命名参数成语

如何在Java中实现命名参数成语? (特别是对于构造函数) 我正在寻找Objective-C的语法,而不是JavaBeans中使用的语法。 一个小代码的例子会很好。 谢谢。

Hibernate,@SequenceGenerator和allocationSize

当使用@SequenceGenerator时,我们都知道Hibernate的默认行为 – 它将实际的数据库序列增加1 ,将此值乘以50(默认的allocationSize值),然后将此值用作实体ID。 这是不正确的行为,并与说: allocationSize – (可选)从序列中分配序列号时要增加的数量。 要清楚:我不打扰生成的ID之间的差距。 我关心与底层数据库序列不一致的 ID。 例如:任何其他应用程序(例如使用普通JDBC)可能需要在从序列获得的ID下插入新行 – 但所有这些值可能已被Hibernate使用! 疯狂。 有人知道这个问题的任何解决scheme(没有设置allocationSize=1 ,从而降低性能)? 编辑: 把事情弄清楚。 如果最后插入的loggingID = 1 ,那么HB为其新实体BUT同时使用值51, 52, 53… :数据库中的序列值将被设置为2 。 当其他应用程序正在使用该序列时,这很容易导致错误。 另一方面:规范说(按照我的理解)数据库序列应该被设置为51 ,同时HB应该使用范围2, 3 … 50 更新: 正如Steve Ebersole在下面提到的:通过设置hibernate.id.new_generator_mappings=true可以启用我描述的行为(也是最直观的行为)。 谢谢你们。 更新2: 对于未来的读者,下面你可以find一个工作的例子。 @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "USERS_SEQ") @SequenceGenerator(name […]

从线程返回值

我有一个HandlerThread方法。 Thread值被改变了,我想把它返回给test()方法。 有没有办法做到这一点? public void test() { Thread uiThread = new HandlerThread("UIHandler"){ public synchronized void run(){ int value; value = 2; //To be returned to test() } }; uiThread.start(); }