嗨,我正在实现一个可视化编辑器,允许用户将图像拖到页面上,并将这些先前拖动的图像中的其他图像拖动(类似于"添加另一个图像").
我基本上只需要在拖动过程中使用鼠标坐标:元素hiliting等...我根据这些坐标使用自定义函数.
问题是,在Webkit上,我可以使用event.clientX和event.clientY来获取它们,在Firefox(v.16.0.1 OSX)下,他们的'对应'pageX和pageY在拖动过程中总是为零.
但是,在mouseMove期间它们不是零.
像我一样聪明,我做了一个
$(document).on("mouseMove",function(e){_ PX = e.pageX, _PY = e.pageY})
总是有最新的PageX和PageY所以我可以在onDrag处理程序中使用它们但是......
OnMouseMove在拖放操作期间不会触发:( :(
在DnD期间我有什么办法可以获得鼠标X和Y吗?我不想让我的代码混乱,因为它应该(并且已经确实)在不同的平台上工作,但是在Firefox上.
任何人都可以给我一些指示吗?Thanx提前.
我需要经常调用这个函数.基本上,它用非重音等效替换所有重音字符,将空格更改为"_",转换为小写,并剥离其余的外来代码,因此可以安全地用作文件名/ url路径/等.问题是,如你所见,从性能的角度来看,它看起来很糟糕.谁能想到更清洁,更快的替代方案?
public static String makeValidPathName(String rawString) {
if (rawString==null) return null;
rawString = rawString.replaceAll("[ÁÀÂÄáàäaàáâãäå]","a");
rawString = rawString.replaceAll("æ","ae");
rawString = rawString.replaceAll("çÇ","c");
rawString = rawString.replaceAll("[ÈÉÊËèéêë]","e");
rawString = rawString.replaceAll("[ìíîïÍÌÎÏ]","i");
rawString = rawString.replaceAll("ñÑ","n");
rawString = rawString.replaceAll("[ÓÓÖÔòóôõö]","o");
rawString = rawString.replaceAll("œ","oe");
rawString = rawString.replaceAll("[ÙÚÛÜùúûü]", "u");
rawString = rawString.replaceAll("[ýÿ]","y");
rawString= rawString.replaceAll("[^a-z A-Z 0-9 \\_ \\+]","");
rawString = rawString.replaceAll(" ","_");
return rawString.toLowerCase();
}
Run Code Online (Sandbox Code Playgroud)
---编辑
好的,伙计......我对所有4个案例进行了性能测试:
并且...胜利者是... TADAAA .....
D/REPLACEMENT_TEST(18563): *** Running Tests (1000 iterations)
D/REPLACEMENT_TEST(18563): Original REGEX : 13533 ms
D/REPLACEMENT_TEST(18563): Compiled …Run Code Online (Sandbox Code Playgroud) 我遇到了可怕的TableLayout性能.我在这里读了一些关于同样的帖子......
我在已经很复杂的布局中使用了tablelayout.我已经使用了很多视图,当然我使用的视图越多,性能越差,这是显而易见的,但我想知道与其他小部件相比,性能是如何可能的那么糟糕.
在我的例子中,一个表格布局,假设5*5文本视图(行中只有纯文本视图)导致系统冻结的时间超过1.5秒,有时只是通过更新TextView.我不是在谈论渲染整个表,而只是在tablelayout中更新一个textview.
我怀疑是setColumnsStretchable(),但即使将其设置为永不拉伸,性能也是一样的.
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
final TextView target=(TextView)seekBar.getTag();
target.setText(""+progress);
}
Run Code Online (Sandbox Code Playgroud)
这是我用来更新单元格的代码.如您所见,它是SeekBar监听器的一部分.我甚至不需要findView()或任何东西,因为我将目标textview存储为seekbar的标签.
因此,移动搜索栏会导致跳跃:需要超过一秒钟!单独执行setText().如果我更新不在表内的任何其他文本视图,则会立即按预期更新.
如果我的桌子是10*10,那么它需要3秒钟!
在你的经历TableLayout是否禁止或者我可能做错了什么?也许行或单元布局的一些神奇值?
提前致谢.
我已经为SpannableStrings" ImageURLSpan"扩展了一个自定义范围ImageSpan.
RemoteImageDrawable",它呈现静态占位符,从Internet加载图像,然后在图像加载完成后,它应该渲染加载的位图而不是占位符.如果draw()再次调用drawable 的方法(由父级view?)会发生这种情况我的问题是,在可绘制级别,我不知道如何在将来的任何时候触发"自动刷新"(一旦加载图像).我试图invalidate用不一致的结果调用父视图:有时候再次调用drawable的draw方法 - 所以它被正确刷新 - 有时它不是.这完全是随机的!
什么是drawable的正确方法,将其内容更改为"使自己无效"?不应该使父View的失效导致所有子drawables无效?我是否需要使用Drawable回调或者它们与我的问题无关?
请找附件相关代码:
public class ImageUrlSpan extends ImageSpan {
public ImageUrlSpan(final View parentView, String imageUrl, int width, int height) {
super(
new RemoteImageDrawable(
parentView, imageUrl, width, height, new ImageLoaders.OnDrawableDownloadListener() {
@Override
public void onDrawableLoaded(Drawable bitmap) {
parentView.invalidate();
// this works sometimes
if (Conf.LOG_ON) Log.v(TAG, "Invalidating parent view... will that refresh myself? "+parentView);
}
}
));
}
}
Run Code Online (Sandbox Code Playgroud)
关于代码RemoteImageDrawable …
我正在尝试将Java(简单)加密algorythm移植到Node JS.我需要能够解密/加密从Java端加密/解密的东西.
我一开始就陷入困境,密码的初始化.
在Java中,我得到了密钥SecretKeySpec和初始化向量IvParameterSpec:
public CryptStuff(String password) throws zillion_exceptions {
if (password==null) throw new InvalidKeyException("No encryption password is set!");
key = new SecretKeySpec(password.getBytes("UTF-8"), "AES");
cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
ivSpec=new IvParameterSpec(new byte[cipher.getBlockSize()]);
cipher.init(Cipher.ENCRYPT_MODE, key, ivSpec);
}
Run Code Online (Sandbox Code Playgroud)
NodeJS需要一个密钥缓冲区和一个IV缓冲区,但是,我不知道如何从头开始计算它们:
var mCrypto = require('crypto'),
key=[0,0,0,0,0,0,.......],
iv=[0,0,0,0,0,.........];
function init (password) {
// generate key from password
// generate IV from blocksize?
var aesCipher = mCrypto.createCipheriv("aes-????????", (new Buffer(key)), (new Buffer(iv)));
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
另外,AES/CBC/PKCS5Padding的匹配算法字符串是什么?
我正在努力弄清楚发生了什么.我有一个典型的应用程序结构,它产生一个负责获取Twitter令牌的OAuthActivity,然后我的主应用程序活动将该令牌用于各种与twitter相关的操作.
我的OAuthActivity有效.我得到一个身份验证令牌,Twitter网页正确显示我的应用程序名称等....此外,在该活动中,我可以发送推文并发布..这意味着OAuthActivity工作,时钟同步,令牌有效等等......
但是当这个OAuthActivity完成并返回到调用活动时,每当我尝试使用该标记(从持久化的密钥/秘密重新创建它)时,无论什么操作,操作总是会失败,并抱怨说AuthChallenge报告为null.就像我提供了一个空令牌,但我还没有!
请查看附件我的OAuthActivity的来源,以及我如何在主要活动中初始化Twitter对象的来源.如果你看错了,请告诉我.
PD - 我显然已经检查过我分配的令牌值与我得到的相同!还尝试了不同的方式来实例化Twitter,通过属性,通过构建器,通过集....并没有任何变化:(
编辑 - >我发现我必须在新的Twitter对象上调用" verifyCredentials() ",如果我想重用一个令牌,但是......没有运气!(请在最后找到发布的例外)
EDIT-2>如果我同时使用子活动和父项
mTwitter=TwitterFactory.getSingleton()
Run Code Online (Sandbox Code Playgroud)
然后twitter对象起作用,但这对我来说并不是真的可以接受,因为它不使用持久性,我需要每次都授权应用程序.此外,只有Twitter对象被授权,TwitterStream不断抛出异常.
干杯!
父活动的源代码,我尝试使用在子活动中获得的访问令牌,如下所示.无论我尝试使用此令牌,总是获得401.
private void init_twitter(String tok, String sec) {
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey(Conf.OAUTH_CONSUMER_KEY)
.setOAuthConsumerSecret(Conf.OAUTH_CONSUMER_SECRET)
.setOAuthAccessToken(tok)
.setOAuthAccessTokenSecret(sec);
TwitterFactory tf = new TwitterFactory(cb.build());
mTwitter=tf.getInstance();
/** This always fails, even though I call this routine with the
correct token & secret !!! See at the enf of message for an …Run Code Online (Sandbox Code Playgroud) 在Windows服务中,如何获取类的实例?
显然,新实例会破坏DI的整体目的.在过去,人们会这样做
ISomeInterface st = container.Resolve<ISomeInterface>();
在这种情况下,实现ISomeInterface的类在其构造函数中具有依赖类/接口,例如SomeInterfaceImp(IOtherInterface oi)().
如何用autofac做到这一点?
我非常喜欢快速,但精通Java,JavaScript,C等其他语言......在创建表达式时,我迷失了Swift语法.看看这个基本的例子,我只是通过调用String.rangeOfString返回一个Optional Range(Range?)来确定一个字符串是否包含在另一个字符串中
这按预期工作:
let LEXEMA:String="http://"
let longUrl:String="http://badgirls.many/picture.png"
let range=longUrl.rangeOfString(LEXEMA);
if (range? != nil) {
// blah
}
Run Code Online (Sandbox Code Playgroud)
现在我正在尝试将if中的表达式组合起来,例如:
if (longUrl.rangeOfString(LEXEMA)? !=nil) {
// blah
}
Run Code Online (Sandbox Code Playgroud)
但我总是得到语法错误,上面会产生一个"预期的分隔符"并且无法理解为什么.做了一些测试:
if (absolutePath.rangeOfString(URL_LEXEMA) !=nil) { }
Expected Separator before "!"
if absolutePath.rangeOfString(URL_LEXEMA) !=nil { }
Braced block of statements is an unused closure
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我正在FirestorePagingAdapter从https://github.com/firebase/FirebaseUI-Android/tree/version-3.4.0-dev测试
问题是,我没有收到更新/更改/删除事件(当项目确实发生更改时)。我会错过一切正常的东西,但是我没有收到实时事件吗?
android ×5
aes ×1
autofac ×1
cryptography ×1
encryption ×1
events ×1
expression ×1
firebase ×1
firebaseui ×1
firefox ×1
java ×1
node.js ×1
padding ×1
performance ×1
replace ×1
swift ×1
tablelayout ×1
token ×1
twitter4j ×1