小编Aug*_*sto的帖子

Pinch Zoom ListView Android

我正试图在Android上实现缩放以放大列表视图,当我点击并拖动缩放列表视图时,我遇到了问题.首先,这是代码:

public class ScaleListView extends ListView {

private ScaleGestureDetector mScaleDetector;
private float mScaleFactor = 1.f;
private float x = 0;
private float y = 0;
private float startx = 0;
private float starty = 0;
private boolean canClick = true;
private float xtranslation = 0;

public ScaleListView(Context context, AttributeSet attrs) {
    super(context, attrs);
    mScaleDetector = new ScaleGestureDetector(context, new ScaleListener());
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
    if (ev.getAction() == MotionEvent.ACTION_DOWN) {
        startx = ev.getX();
        starty = ev.getY();
    }

    if (ev.getPointerCount() …
Run Code Online (Sandbox Code Playgroud)

android listview zoom

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

在实现 proc 宏时,如何检查类型是否实现了特征?

我正在尝试创建一个proc-macro派生和实现结构的特征,并且我需要结构中的所有字段都实现Display

我该如何检查?

此外,我如何检查属性是否Iterator也实现了?(我想处理迭代器的项目是否也实现了显示)。

我正在使用synquote板条箱。我设法解析struct并生成实现。但对于像Vec和这样的类型Option,我想检查他们是否Iterator正确实现和处理它。

syn::Field结构具有ty我认为应该作为起点的属性,但是查看文档我无法猜测任何方法来检查此类型是否实现了某种特征。

rust rust-proc-macros

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

Akka IO.TCP与Json

我用akka.io.tcp编写了一个客户端和服务器,在阅读客户端发送的消息时遇到了问题.我用json发送消息.在客户端,我这样写消息:

connection ! Write(ByteString(msgString))
Run Code Online (Sandbox Code Playgroud)

在服务器端,我有以下内容:

override def receive: Receive = {
  case Received(data) => listener ! Json.parse(data.utf8String)
  case PeerClosed => {
    context stop self
  }
}
Run Code Online (Sandbox Code Playgroud)

问题是akka一次只能读取多条消息,所以我得到了一个无效的Json.有没有办法让akka一次只读一条消息?

sockets tcp scala akka

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

XML签名验证

我有一个问题,我无法弄清楚如何解决.我的应用程序收到(据称)签名的XML,我必须验证它是否正确.这是XML中接收内容的签名部分

<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
        <SignedInfo>
            <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
            <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
            <Reference URI="35121103220612000188550010000000131000009300">
                <Transforms>
                    <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                    <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
                </Transforms>
                <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                <DigestValue>uLZ/66r6OoNLpj5v4cIsrv5zmyc=</DigestValue>
            </Reference>
        </SignedInfo>
        <SignatureValue>encoded</SignatureValue>
        <KeyInfo>
            <X509Data>
                <X509Certificate>encoded</X509Certificate>
            </X509Data>
        </KeyInfo>
    </Signature>
Run Code Online (Sandbox Code Playgroud)

我在互联网上发现的所有验证都需要公钥.但我没有.我只有DigestValue.您知道是否可以仅使用DiggestValue进行验证吗?

这是我到目前为止所拥有的.问题是从哪里获取X509KeySelector的密钥

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    dbf.setNamespaceAware(true);
    DocumentBuilder builder = dbf.newDocumentBuilder();
    Document doc = builder.parse("/home/test.xml");
    Node nl = doc.getElementsByTagNameNS(XMLSignature.XMLNS, "Signature").item(0);
    DOMValidateContext valContext = new DOMValidateContext(new X509KeySelector(publicKey), nl);
    XMLSignatureFactory factory = XMLSignatureFactory.getInstance("DOM");
    XMLSignature signature = factory.unmarshalXMLSignature(valContext);
    System.out.println(signature.validate(valContext));
Run Code Online (Sandbox Code Playgroud)

提前致谢.

java xml x509

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

标签 统计

akka ×1

android ×1

java ×1

listview ×1

rust ×1

rust-proc-macros ×1

scala ×1

sockets ×1

tcp ×1

x509 ×1

xml ×1

zoom ×1