小编fyo*_*iev的帖子

了解Canvas和Surface概念

我很难理解绘制的过程,SurfaceView因此也很难理解在Android中使用的整个Surface/ Canvas/ Bitmap系统.

我已经阅读了所有文章和API文档页面,我可以在android-developers网站上找到,一些android图形教程,LunarLander源代码和这个问题.

请告诉我,这些陈述中哪些是真的,哪些不是,为什么.

  1. Canvas有它自己的Bitmap附加.Surface有它自己的Canvas附加.
  2. 所有View的窗口共享相同Surface,因此共享相同Canvas.
  3. SurfaceView是子类View,它与其他View子类View本身不同,它有自己Surface的绘制.

还有一个问题:

  • Surface如果已经有一个Canvas用于位图的高级操作,为什么需要一个类.举一个Canvas不适合做Surface可以做的工作的情况的例子.

android surfaceview android-canvas

114
推荐指数
3
解决办法
4万
查看次数

EditText的光标位置

假设用户已将一些文本写入EditText,然后触摸屏幕上的其他位置,这会导致光标位置发生变化:如何确定新的光标位置?

android android-ui

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

如何实现视差滚动?

这是链接供参考
http://readwrite.com/2013/02/07/robert-scoble-favorite-apps-facebook-gmail-youtube
在这个站点中心和右侧部分如果我们滚动中心部分一次滚动...
我完成了与此代码相同: -

这是HTML代码: -

<div id="left" class="linked">
<img height="600" src="http://www.visitingdc.com/images/eiffel-tower-picture.jpg">
</div>
<div id="right" class="linked">
<img  src="http://www.visitingdc.com/images/eiffel-tower-picture.jpg">
</div><br>
Run Code Online (Sandbox Code Playgroud)

脚本:-

$(function(){

    $('.linked').scroll(function(){
        $('.linked').scrollTop($(this).scrollTop());    
    })

})
Run Code Online (Sandbox Code Playgroud)

CSS: -

<br>#left { width: 300px; height: 400px; overflow: scroll; float: left; }
#right { width: 300px; height: 400px; overflow: scroll; float: left; }
Run Code Online (Sandbox Code Playgroud)

但我有一点点问题.
在上面的网站都滚动一次,但右侧是滚动慢如何工作....?
请帮我...

javascript css scroll parallax

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

我可以用圆括号初始化数组吗?

偶尔,我在我的程序代码的一个地方写了一个拼写错误:

int a = 10;  
char* b = new char(a);
Run Code Online (Sandbox Code Playgroud)

错误是显而易见的:我写了()而不是[].奇怪的是...代码编译好了,它在调试器中运行确定.但是在执行这些行的函数之后,在调试器之外编译的.exe崩溃了一会儿.

第二行代码真的合法吗?如果是,那对编译器意味着什么?

c++ constructor new-operator

6
推荐指数
2
解决办法
1173
查看次数

轻松实施模板

假设我在某处编写了类模板声明collector.h:

template <class T, int maxElements>
class collector {

    T elements[maxElements];
    int activeCount;

public:

    collector();
    void process();
    void draw();

};
Run Code Online (Sandbox Code Playgroud)

并在collector.cpp以下方面实施其三种方法:

template <class T, int maxElements> 
collector<T, maxElements>::collector(){
    //code here
}

template <class T, int maxElements>
void collector<T, maxElements>::process(){
    //code here
}

template <class T, int maxElements>
void collector<T, maxElements>::draw(){
    //code here
}
Run Code Online (Sandbox Code Playgroud)

有没有办法不写作template <class T, int maxElements><T, maxElements> 每个功能的实现?像这样的东西:

template <class T, int maxElements>{

    collector<T, maxElements>::collector(){
        //code here
    }

    void collector<T, maxElements>::process(){ …
Run Code Online (Sandbox Code Playgroud)

c++

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

关于为什么windows'.dll不适用于linux的细节

我很好奇能够在Linux编译的C++代码中使用Windows中编译的最原始的DLL库.让我们假设库的问题不是滔天专有的东西从Windows核心;

...只有一个与假的API一样(这里是标题和实现):

// MathFuncsDll.h

namespace MathFuncs
{
    class MyMathFuncs
    {
    public:
        // Returns a + b
        static __declspec(dllexport) double Add(double a, double b);

        // Returns a - b
        static __declspec(dllexport) double Subtract(double a, double b);
    };
}


// MathFuncsDll.cpp

#include "MathFuncsDll.h"

using namespace std;

namespace MathFuncs
{
    double MyMathFuncs::Add(double a, double b)
    {
        return a + b;
    }

    double MyMathFuncs::Subtract(double a, double b)
    {
        return a - b;
    }
}
Run Code Online (Sandbox Code Playgroud)

除了<iostream>之外,这个库没有依赖项,不是吗?

Linux编译的.cpp将包含以下内容:

// MyExecRefsDll.cpp
// compile with: /EHsc …
Run Code Online (Sandbox Code Playgroud)

c++ linux windows dll shared-libraries

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