小编kbu*_*ach的帖子

了解如何使用OverScroller类

我正在考虑在我的项目中添加过度滚动(而不是颜色变化),但即使在阅读了API文档和这里的几个问题后,我仍然不明白我需要做些什么才能使它工作.

根据OverScroller的API文档:" 这个类封装了滚动,能够超越滚动操作的范围.在大多数情况下,这个类是Scroller的直接替代品. "

我之前在父类中有一个Scroller对象:

public boolean onTouchEvent(MotionEvent ev) {   
    ....// code to calculate deltas
     if (deltaY != 0 || deltaX != 0)
            scrollBy(deltaX, deltaY);
}
Run Code Online (Sandbox Code Playgroud)

然后我去改变它:

if (deltaY != 0 || deltaX != 0)
            overScrollBy(deltaX, deltaY, getScrollX(), getScrollY(),
                child.getRight() - getWidth(), child.getBottom() - getHeight(), 
                    OVERSCROLL_DISTANCE, OVERSCROLL_DISTANCE, false);
Run Code Online (Sandbox Code Playgroud)

现在滚动根本不起作用!fling()作为一个替代滴,但不滚动....

总之,我有两个问题:

  1. 为什么滚动不起作用overScrollBy?我是否必须添加其他代码才能使其正常工作?
  2. 我为什么要打电话mScroller.fling(),只overScrollBy()?为什么不mScroller.overScrollBy()呢?它是否以某种方式构建在View课堂上?

这可能是非常明显的,但我在这里挣扎.任何帮助将非常感谢,谢谢!

android android-scrollview android-overscoll android-scroll

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

Android 4.3 ImageView方法的错误getImageMatrix()

我最近升级到Android 4.4,我的应用程序的某些功能令人惊讶地停止了工作.

我有这个代码用于初始化然后绘制我的自定义视图.基本思路是调整缩放级别,使整个视图适合屏幕.

private void initAtZoomLevel(float zoomLevel){
    ....
    Matrix transformMatrix = new Matrix();
    transformMatrix.setScale(initialZoomLevel, initialZoomLevel);
    float yTransCenter = (screenHeight - mapHeight)/2.0f;
    setImageMatrix(transformMatrix);
}

protected void onDraw(Canvas canvas){

    super.onDraw(canvas);
    float[] values = new float[9];
    getImageMatrix().getValues(values);
    scaleFactor = values[0];
    ....
}
Run Code Online (Sandbox Code Playgroud)

这是在ANDROID 4.1.2和4.2.2设备上工作的

但是在Android 4.4/4.3上getImageMatrix().getValues(values)停止了工作! 它返回一个单位矩阵,而不是我在app启动时期望的变换矩阵!

DEBUG PRINT-OUT:

4.1.2:@ setImageMatrix(transformMatrix): transformMatrix = Matrix{[0.025122833, 0.0, 0.0][0.0, 0.025122833, 566.5][0.0, 0.0, 1.0]}

@ getImageMatrix().getValues(values):transformMatrix = Matrix{[0.025122833, 0.0, 0.0][0.0, 0.025122833, 566.5][0.0, 0.0, 1.0]}

4.4:@ setImageMatrix(transformMatrix): transformMatrix = Matrix{[0.025122833, …

android android-custom-view android-4.3-jelly-bean android-4.4-kitkat

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

我如何等待Cordova和jQuery加载他们的库?

jQuery具有"就绪"功能:

$(function() {...});
Run Code Online (Sandbox Code Playgroud)

并且cordova文档说要添加一个事件监听器:

document.addEventListener("deviceready", onDeviceReady, false();
function onDeviceReady(){...}
Run Code Online (Sandbox Code Playgroud)

我是否需要调用这两个以确保在使用任何引用它们的代码之前加载这两个库?

嵌套它们是否有意义,即:

$(function(){
    onDeviceReady(){...}
}
Run Code Online (Sandbox Code Playgroud)

只是想弄清楚这样做的最好方法,也许我正在过度思考它

javascript jquery javascript-events cordova

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