アイコン(ボタン)が付いた水平スクロールバーがあります。
選択したアイコンをバーの中央に移動しようとしています。
Android でのビューの配置に関するこの投稿を読みました。
私はこのコードを持っていますが、これは論理的には問題ないと思われます:
public void selectButton() {
...
HorizontalScrollView sv=(HorizontalScrollView)button.getParent().getParent();
int offsetX=getButtonXPosition()-sv.getWidth()/2;
sv.smoothScrollTo(offsetX, 0);
..
}
public int getButtonXPosition() {
return (button.getLeft()+button.getRight())/2;
}
左上隅のa
ピクセルを右\左(負\正のピクセル数)に移動し、
ここでa
= X position of middle of selected button
-
middle of the bar
.
a
つまり、ボタンピクセルの中央を右\左(負\正)に移動したい
ただし、ボタンが左\右に停止しすぎます(右端\左端のボタンの場合)
添付の画像を参照してください: