我有一个水平滚动条,上面有图标(按钮)。
我尝试将所选图标移动到栏的中间。
我已经阅读了这篇关于在android中定位视图的post。
我有这段代码,对我来说似乎没问题:
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
像素的中间移到右边\左边(负面\正面)
然而按钮停在左边\右边(如果它是最右边的\最左边的按钮)
见附图:
答案 0 :(得分:-1)
试试这个......
<HorizontalScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_margin="10dp">
</LinearLayout>
</HorizontalScrollView>
for (int x = 0; x < ImagesList.size(); x++) {
imageHor = new ImageView(FullIMageScreenNew.this);
linearLayout.setTag(x);
imageHor.setImageBitmap(decodeSampledBitmapFromResource(ImagesList.get(x)));
LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
llp.setMargins(10, 10, 10, 10); // 4 margin values for Top/Left/Right/Bottom
linearLayout.addView(imageHor, llp);
}
linearLayout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
for (int i = 0; i < ImagesList.size(); i++) {
indexNumber.add(i);
int index = indexNumber.indexOf(i);
Log.e("IndexValue=====", "" + index);
awesomePager.setCurrentItem(index, true);
}
}
});