0

このコードは、2.3.5 のスマートフォンでは機能しますが、4.0.3 のタブレットでは機能しません。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    this.setContentView(R.layout.rotate_image);

    mRotator = (ImageView) findViewById(R.id.rotateImage_image_rotator);

    mGDetector = new GestureDetector(getApplicationContext(), this);

    findViewById(R.id.rotateImage_background).setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            return mGDetector.onTouchEvent(event);
        }
    });
}
@Override
public boolean onDown(MotionEvent e) {
    // TODO Auto-generated method stub
    return true;
}


@Override
public boolean onFling(MotionEvent start, MotionEvent finish, float velocityX, float velocityY) {   
    return false;
}


@Override
public void onLongPress(MotionEvent e) {
    // TODO Auto-generated method stub

}


@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
        float distanceY) {
    if(e2.getHistorySize() == 0){

    }
    else{
            if(e2.getX() > e2.getHistoricalX(e2.getHistorySize() -1)){

                updateRotation(true);
            }
            else{
                updateRotation(false);
            }

        }
    return true;
}


@Override
public void onShowPress(MotionEvent e) {
    // TODO Auto-generated method stub

}


@Override
public boolean onSingleTapUp(MotionEvent e) {
    // TODO Auto-generated method stub
    return false;
}

タブレットのバグか何かでしょうか?つまり、同じコードで、電話では完全に機能しますが、タブレットには登録されません。Android版だからなのか、それともタブレットだからなのか。

編集:より具体的には、何らかの理由で、関数 onScroll がタブレットで呼び出されないか、1回だけ呼び出されますが、電話では魅力のように機能します

4

1 に答える 1

1

私が見る限り、唯一の機能はonScroll? updateRotation! 非常にgetHistorySize速いモーションを取得するには、タブレットの問題である可能性があることに注意してください(問題がある場合は、ここでログ出力を使用します)。

于 2013-05-24T16:23:57.413 に答える