问题列表 - 第15510页

如何在Android中进行流畅的图像旋转?

我正在使用a RotateAnimation来旋转我在Android中用作自定义循环微调器的图像.这是我的rotate_indefinitely.xml文件,我放入res/anim/:

<?xml version="1.0" encoding="UTF-8"?>
<rotate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0"
    android:toDegrees="360"
    android:pivotX="50%"
    android:pivotY="50%"
    android:repeatCount="infinite"
    android:duration="1200" />    
Run Code Online (Sandbox Code Playgroud)

当我将它应用于我的ImageView使用时AndroidUtils.loadAnimation(),效果很好!

spinner.startAnimation( 
    AnimationUtils.loadAnimation(activity, R.anim.rotate_indefinitely) );
Run Code Online (Sandbox Code Playgroud)

一个问题是图像旋转似乎在每个周期的顶部暂停.

换句话说,图像旋转360度,暂停,然后再旋转360度等.

我怀疑问题是动画是使用像android:iterpolator="@android:anim/accelerate_interpolator"(AccelerateInterpolator)的默认插值器,但我不知道如何告诉它不插入动画.

如何关闭插值(如果这确实是问题)以使我的动画循环顺利进行?

animation android view

209
推荐指数
10
解决办法
22万
查看次数

C#:并非所有代码路径都返回一个值

我正在编写一个简单的WinForms应用程序,我允许用户在TreeView控件中拖动TreeNodes.我强制执行的规则之一是不允许用户将TreeNode拖动到其自己的子节点之一.我以递归样式编写了以下函数来检查目标节点的父级.在编译时,我得到错误,并非所有代码路径都返回此函数的值.据我所知,我对这个逻辑的每个可能的分支都有一个回复声明......但我显然是错的.请有人指出我的错误.

    private bool IsDestinationNodeAChildOfDraggingNode(TreeNode draggingNode, TreeNode destinationNode) {
        if (draggingNode.Nodes.Count == 0) 
            return false;
        else {
            if (draggingNode.Nodes.Contains(destinationNode)) 
                return true;
            else {
                foreach (TreeNode node in draggingNode.Nodes) 
                    return IsDestinationNodeAChildOfDraggingNode(node, destinationNode);
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

c# compilation

3
推荐指数
2
解决办法
1万
查看次数

有没有办法找到控件的所有者线程?

我正在处理一个大型应用程序的线程问题(获得跨线程异常).有没有办法找到创建特定控件的线程名称/ ID?

当我尝试将新控件添加到控件的控件集合时,会发生错误.我不能真正创建一个小的,可重复的样本,所以我会尽可能地描述它.

我有一个位于表单上的主控件,称之为_mainControl.在它的构造函数中,我实例化了另一个控件的实例,例如

ChildControl _childControl = new ChildControl();
Run Code Online (Sandbox Code Playgroud)

现在_childControl存在但我还没有将它添加到_mainControls集合中.

最终,_mainControl会收到一个我应该添加控件的事件通知.在事件处理程序中,我检查是否.InvokeRequired,如果是,我调用处理程序,如下所示:

AddControlEventHander(...)
{
    if(InvokeRequired)
    {
        BeginInvoke(new MethodInvoker(AddControlEventHander);
        return;
    }
    Controls.Add(_childControl);
}
Run Code Online (Sandbox Code Playgroud)

Controls.Add总是抛出异常("跨线程操作无效:从创建它的线程以外的线程访问控件'_item').

现在,我不明白这是怎么回事.我在创建_mainControl的同一个线程上创建了_childControl.当我在调试时查看线程窗口时,当我调用Control.Add时,当添加_childControl时,当前线程名称/ id是相同的.但是,让我最困惑的是来自_mainControl的以下调用:

InvokeReuqired == false;
_childControl.InvokeRequired == false;
_childControl._item.InvokeRequired == true; //I made _item public just to try this and it returns true!
Run Code Online (Sandbox Code Playgroud)

怎么可能?_childControl是否有可能在一个线程上创建,而其子项以某种方式在另一个线程上创建?所有_childControl的子节点都是在初始化期间创建的,正如通常所做的那样.

如果有人对可能发生的事情有任何提示/建议,请告诉我.

谢谢.

编辑:

如果有人有兴趣,我会发现发生了什么.我很好奇如何在一个线程上创建一个控件,并且它是在另一个线程上创建的子节点,即使InitializeComponent都是在同一个线程上完成的.所以,我发现了使用类似于Charles建议的代码创建孩子的线程.一旦我知道了,我至少知道要关注哪个主题.然后我打破了子控件的OnHandleCreated事件并找到了问题.

我不知道的一件事是控件的句柄是在控件首次可见时创建的,而不是在创建控件时创建的.因此,没有控件的线程试图将其可见性设置为true.所以我添加了一个检查以查看InvokeRequired并认为这样做会有所帮助.但是,我真的没想到的是调用InvokeRequired会创建控件的句柄(如果它还没有创建)!这实际上导致在错误的线程上创建控件,并且始终为InvokeRequired返回false.我通过触摸控件的Handle属性来解决这个问题,以便在调用InvokeRequired之前创建它.

谢谢你的帮助:)

c# multithreading

6
推荐指数
1
解决办法
4271
查看次数

解释封装的匿名函数语法

摘要

你能解释一下JavaScript中封装的匿名函数语法背后的原因吗?为什么这样做:(function(){})();但这不是:function(){}();


我知道的

在JavaScript中,可以创建一个这样的命名函数:

function twoPlusTwo(){
    alert(2 + 2);
}
twoPlusTwo();
Run Code Online (Sandbox Code Playgroud)

您还可以创建匿名函数并将其分配给变量:

var twoPlusTwo = function(){
    alert(2 + 2);
};
twoPlusTwo();
Run Code Online (Sandbox Code Playgroud)

您可以通过创建匿名函数来封装代码块,然后将其包装在括号中并立即执行:

(function(){
    alert(2 + 2);
})();
Run Code Online (Sandbox Code Playgroud)

这在创建模块化脚本时非常有用,可以避免使当前作用域或全局作用域混乱,并且可能存在冲突的变量 - 例如Greasemonkey脚本,jQuery插件等.

现在,我理解为什么会这样.括号包含内容并仅公开结果(我确定有更好的方法来描述),例如with (2 + 2) === 4.


我不明白

但我不明白为什么这也不起作用:

function(){
    alert(2 + 2);
}();
Run Code Online (Sandbox Code Playgroud)

你能解释一下吗?

javascript syntax anonymous-function

364
推荐指数
4
解决办法
7万
查看次数

XSLT将列表转换为动态确定列的表

我需要这个XML,

<list columns="3">
  <item>martin</item>
  <item>donald</item>
  <item>whistler</item>
  <item>mother</item>
  <item>carl</item>
  <item>liz</item>
  <item>cosmo</item>
</list>
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

<table>
  <tr>
    <td>martin</td>
    <td>donald</td>
    <td>whistler</td>
  </tr>
  <tr>
    <td>mother</td>
    <td>carl</td>
    <td>liz</td>
  </tr>
  <tr>
    <td>cosmo</td>
    <td></td>
    <td></td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

什么时候columns="4",它应该是这样的:

<table>
  <tr>
    <td>martin</td>
    <td>donald</td>
    <td>whistler</td>
    <td>mother</td>
  </tr>
  <tr>
    <td>carl</td>
    <td>liz</td>
    <td>cosmo</td>
    <td></td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

有关XSLT文件应该是什么样子的任何提示?我可以说,它需要某种循环(递归?),但我不确定是否有更优雅的方式.

xml xslt multiple-columns

0
推荐指数
1
解决办法
5798
查看次数

编码空格字符的URL:+或%20?

何时将URL中的空格编码为+,何时将其编码为%20

url url-encoding

681
推荐指数
5
解决办法
63万
查看次数

使用Cookie进行PHP身份验证的最佳做法是什么?

我正在寻找有关如何使用Cookie最好地将身份验证与PHP结合使用的提示和想法.

每个php脚本是否应该检查cookie值以确定用户是否仍然登录?是否应该有一个脚本执行此检查并包含来自其他每个脚本的脚本?php可以从文件系统的不同深度看到cookie值吗?

喜欢:blahblahblah.com/和blahblahblah.com/login/

他们都可以读取cookie吗?

一篇文章有​​很多问题,但谢谢!

php authentication cookies

6
推荐指数
1
解决办法
3606
查看次数

在JavaScript中重载算术运算符?

考虑到这个JavaScript"类"定义,这是我能想到的最好的方法来解决这个问题:

var Quota = function(hours, minutes, seconds){
    if (arguments.length === 3) {
        this.hours = hours;
        this.minutes = minutes;
        this.seconds = seconds;

        this.totalMilliseconds = Math.floor((hours * 3600000)) + Math.floor((minutes * 60000)) + Math.floor((seconds * 1000));
    }
    else if (arguments.length === 1) {
        this.totalMilliseconds = hours;

        this.hours = Math.floor(this.totalMilliseconds / 3600000);
        this.minutes = Math.floor((this.totalMilliseconds % 3600000) / 60000);
        this.seconds = Math.floor(((this.totalMilliseconds % 3600000) % 60000) / 1000);
    }

    this.padL = function(val){
        return (val.toString().length === 1) ? "0" + val : val;
    }; …
Run Code Online (Sandbox Code Playgroud)

javascript operator-overloading

68
推荐指数
8
解决办法
6万
查看次数

用于Java和Objective-C游戏的实时游戏网络库

我正在寻找使用专用Java服务器和iphone客户端以及Java桌面客户端构建的实时游戏.Java和iphone(特别是可靠的UDP)存在哪些可用于实时多人游戏开发的高性能网络传输库?

大多数基于实时动作的游戏(Counter-Strike,Left4Dead,Quake III)的一般建议是使用UDP/IP传输协议发送消息作为"不可靠"的数据包,支持TCP的"保证"传送(因为问题)有重发和延迟问题,你不能轻易控制).

  • 半寿命源引擎网络概述
  • Quake III网络 另一个建议是建立一个可靠的UDP协议,让你"可选"保证UDP数据包的传送(虽然仍然无法保证传输顺序,如TCP流,只要你的游戏可以处理乱序包).

Project Darkstar是一个带有C++绑定的Java MMO服务器(对于通用多人游戏的轻量级实时网络库来说有点重).

我见过用C语言编写的可靠UDP库: - Enet - 可靠的UDP库 - Cocoa AsyncSocket

udp network-programming real-time

8
推荐指数
2
解决办法
1万
查看次数

访问加载的JSON对象的数据成员的能力不一致

我正在使用Django加载JSON字符串simplejson,因此:

obj = json.loads('{"name": "joe"}')
person = obj.name
Run Code Online (Sandbox Code Playgroud)

这会引发错误:

'dict' object has no attribute 'name'
Run Code Online (Sandbox Code Playgroud)

但是当我传递obj给视图模板并通过{{ obj.name }}它打印出来时,它可以工作!为什么?

python django simplejson

1
推荐指数
1
解决办法
645
查看次数